2016-11-11 295 views
0

我使用jQuery實現了ajax請求。這是代碼:jQuery ajax適用於Chrome,但不適用於Firefox或Safari

//initialize value, nameValue, emailValue 

$.ajax({ 
    url: "getPOST.php", 
    type: 'POST', 
    data: { 
    'id': value, 
    'name': nameValue, 
    'email': emailValue 
    }, 
    success: function(response) { 
    console.log(response); 
    } 
}); 

該代碼在Chrome中正常工作,但在Safari和Firefox中失敗。我已經看到了這個問題的一些答案,但他們已經有6年或更久了。有什麼可以解決這個問題?

編輯:失敗我的意思是說,在PHP方面,沒有什麼會在Firefox或Safari上運行時存儲在數據庫中,但它在Chrome中按預期工作。控制檯中沒有錯誤消息。 Safari中的請求顯示爲紅色,並且未發送任何數據。

enter image description here

我檢查在Firefox發佈數據,他們是因爲他們應該的。那裏沒有錯誤。雖然請求被塗成紅色。這是它的外觀。 jQuery方面的錯誤?

enter image description here

我使用此代碼將數據發送到我的服務器,指導用戶對支付寶付款頁面之前。

jQuery代碼。希望我沒有刪除許多大括號。

// JavaScript Document 
    jQuery(document).ready(function($){ 
     //you can now use $ as your jQuery object. 



    //real stuff here 
    $(".submit-link").click(function(e){ 
    var value=$.trim($(".url-submit").val()); 

    if(value.length>0){ 
    value = encodeURIComponent(value); 
    var nameValue=$.trim($(".name-submit").val()); 
    var emailValue=$.trim($(".email-submit").val()); 

    if(nameValue.length>0){nameValue = encodeURIComponent(nameValue);} 
    if(emailValue.length>0){emailValue = encodeURIComponent(emailValue);} 


    $.ajax({ 
     url: "getPOST.php", 
     type: 'POST', 
     data: {"id":value,"name":nameValue, "email":emailValue}, 
     success: function(response) { 
    console.log(response); 
     } 


    //go to link in href now 
    }); 
     }else{ 
    var $urlSubmit = $('.url-submit'); 
     $urlSubmit.addClass('invalid'); 
     setTimeout(function(){ 
     $urlSubmit.removeClass('invalid'); 
     },500); 

    e.preventDefault(); 
     } 
    }); 


    //some other stuff 

    }); 
+0

當你說失敗時會發生什麼?您所顯示的代碼片段沒有任何問題會導致瀏覽器之間的不一致 –

+0

已添加編輯.. – sanjihan

+1

在瀏覽器中打開它失敗的開發人員工具,並查看控制檯中是否有任何錯誤消息。如果您看到任何內容,請分享它們,因爲它們可以幫助診斷問題。編輯:只是看到你說它在PHP方面失敗。你可以迴應/註銷後變量的樣子。您還可以檢查網絡選項卡以查看發送到服務器的值。 – Dymos

回答

1

得久了評論,但儘量不包括jQuery和嘗試簡單XHR /取來看看它是否工作(也許你會如果你試圖獲取得到其他易於理解的錯誤)

fetch('getPOST.php', { 
    method: 'POST', 
    headers: {'content-type': 'application/x-www-form-urlencoded; charset=UTF-8'} 
    body: 'id=0&name=bob&email=bob%40localhost' 
}).then(res => console.log(res)) 

( Safari瀏覽器沒有獲取所以嘗試在Firefox中)

我唯一能做的就是,你張貼交叉起源...你是發佈到同一個域名?必須是網絡錯誤/限制因爲你的代碼有效

+0

我正在使用的服務器尚未與DNS連接,所以我只輸入IP地址。 – sanjihan

+0

也許嘗試不重定向你張貼到貝寶,如果它是在相同的請求完成 – Endless

+0

這是奇怪的行爲的原因。謝了哥們! – sanjihan

相關問題