$.ajax({
type: "POST",
url: "http://mysite.com/process.php",
data: { data: mydata },
cache: false,
dataType: "text",
error: function(jqXHR, textStatus, errorThrown){
alert(jqXHR.status);
alert(jqXHR.statusText);
alert(jqXHR.responseText);
},
success: function(data){
getContentBox().innerHTML = data;
}
});
它返回一个status
= 0,statusText
=“错误”且空responseText
的jqXHR对象。但是,我的php似乎工作,我看到我的数据插入我的数据库。我做错了什么?
任何帮助将不胜感激。 提前谢谢!
编辑: Chrome控制台说 XMLHttpRequest无法加载http://mysite.com/data.php。 Access-Control-Allow-Origin不允许原点http://www.mysite.com。
答案 0 :(得分:1)
ShelbyZ的评论让我得到了解决方案:
当我尝试使用绝对URL时,浏览器拒绝执行请求,我必须将其写为相对URL。
$.ajax({
type: "POST",
url: "process.php",
data: { data: mydata },
cache: false,
dataType: "text",
error: function(jqXHR, textStatus, errorThrown){
alert(jqXHR.status);
alert(jqXHR.statusText);
alert(jqXHR.responseText);
},
success: function(data){
getContentBox().innerHTML = data;
}
});
谢谢!
答案 1 :(得分:0)
试试这个(你忘了关闭一个括号):
$.ajax({
...
success: function(data){
getContentBox().innerHTML = data;
}
});
答案 2 :(得分:0)
为什么不使用jquery的内置post函数来简化这一点,即
$.post('http://mysite.com/process.php', mydata, function(data) {
if (data.status == 1) {
getContentBox().html() = data;
} else {
alert(data.status);
alert(data.statusText);
alert(data.responseText);
}
});
我不确定您的状态回复是什么,因此您可能需要对其进行编辑,但如果您将其置于$('form here').submit(function() {POSTCODEHERE});
答案 3 :(得分:0)
我遇到了同样的问题。 Ajax函数绑定到<form>
内部的按钮(类型=&#34;提交&#34;),所以总是当我按下此按钮时我的页面重新加载并且error
函数工作而不是{{ 1}}。我真的不知道这是如何相关的,但是当我向按钮的动作听众添加success
并且它正常工作时。