jquery
  • ajax
  • forms
  • get
  • 2012-08-14 82 views 0 likes 
    0

    我想用ajax来获取表单数据发送到api url然后重定向填写表单的用户到谢谢页面。AJAX获得成功后重定向

    <form id="valform"> 
    <!-- form elements --> 
    </form> 
    <div id="status_message"></div> 
    

    简单形式的代码是上面和Ajax代码正在

    $(document).ready(function(){ 
    var API_URL = 'http://www.some-api-provider.com/api.php';  
    $('#valform').on('submit', function (e){ 
    e.preventDefault(); 
    
    $.ajax({ 
        type: 'GET', 
        url: API_URL, 
        data: $('#valform').serialize(), 
        success: function() { 
        window.location.href = "thankyou.html"; 
    
        }, 
        error: function() { 
        alert('There was a problem!'); // do something better than this! 
        } 
    }); 
    return false; 
    }); 
    

    是否有与此代码的问题?我不断收到GET部分的警报消息,所以我假设有一些错误。

    +0

    跨域AJAX本身就是一个问题。 – ahren 2012-08-14 05:04:37

    +0

    有没有认证参数? – 2012-08-14 05:44:05

    回答

    1

    除非您的文件托管在与API_URL相同的域中,否则AJAX将停止您的请求,这就是您看到错误消息的原因。这是停止XSS (Cross Site Scripting),一种黑客技术。这被称为same-domain政策。

    +0

    什么可以解决这个问题? – user1532944 2012-08-14 05:08:46

    +0

    将文件托管在同一台服务器上? – Polyov 2012-08-14 05:09:26

    +1

    或者使用服务器通过托管在同一个域上的代理来收集API数据。 – ahren 2012-08-14 05:13:36

    相关问题