jquery
  • ajax
  • forms
  • get
  • 2012-08-14 87 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

    相關問題