我用jQuery
实现了ajax请求。这是代码:
//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中的请求以红色显示,但未发送任何数据。我检查了Firefox中的帖子数据,他们应该是这样的。没有错误。虽然请求是红色的。这是它的外观。 jQuery方面有错误吗?
在将用户引导至PayPal付款页面之前,我使用此代码将数据发送到我的服务器。
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 :(得分:1)
需要很长时间的评论,但尝试排除jquery并尝试简单的xhr / fetch以查看它是否有效(如果你尝试获取,也许你会得到另一个可理解的错误)
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没有fetch所以在firefox中尝试)
我能做的唯一事情就是你发帖交叉起源......你是否发布到同一个域名?必须是网络错误/限制,因为您的代码有效