2016-11-11 298 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

相关问题