jQuery ajax函数返回错误

时间:2012-05-07 12:58:59

标签: jquery ajax post

说实话,我是jQuery的初学者,现在我被卡住了。我想将数据从我的HTML表单发送到php,它将数据添加到数据库并返回一些我想在原始HTML上显示的值。这是我的代码:

$.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

4 个答案:

答案 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并且它正常工作时。