7

老实说,我是 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="error" 和 empty的 jqXHR 对象responseText。但是,我的 php 似乎可以工作,我看到我的数据插入到我的数据库中。我究竟做错了什么?

任何帮助,将不胜感激。提前致谢!

编辑:Chrome 控制台说 XMLHttpRequest 无法加载http://mysite.com/data.php。Access-Control-Allow-Origin 不允许来源http://www.mysite.com 。

4

4 回答 4

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;
}
});

谢谢!

于 2012-05-08T19:48:42.007 回答
0

试试这个(你忘了关闭一个括号):

$.ajax({
  ...
  success: function(data){
    getContentBox().innerHTML = data;
  }
});
于 2012-05-07T13:07:41.713 回答
0

为什么不使用jquery的内置post函数来简化这个ie

            $.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});

于 2012-05-07T18:04:02.250 回答
0

我有同样的问题。Ajax 函数绑定<form>到. 我真的不知道这有什么关系,但是当我添加到按钮的动作侦听器时,它就可以正常工作了。errorsuccessevent.preventDefault()

于 2016-11-28T11:08:53.850 回答