0

有很多类似的问题,但我没有找到一个直截了当的问题:我正在尝试使用 DataType html 从 jQuery $.ajax 调用中获取一些纯文本。StatusCode 为 200 OK,但触发了错误函数。


代码时间:

HTML (index.html)

<html>
 <head>
  <title>Test</title>
  <script type="text/javascript" src="jquery.js"></script>
 </head>
<body>
 <script type="text/javascript">
  function doajax(){
   $.ajax({
   url:'http://localhost/test.php',
   DataType:'html',
   data:{id:5},
   success:function(data){ alert('We made it'); },
   error:function(v1,v2,v3){ alert('Something went wrong'); } //gets fired
  });
 }
 </script>
 <a href="#" onclick="doajax(); return false;">Click to test</a>
</body>
</html>

PHP (test.php)

echo 'Hi';

现在这对我来说看起来微不足道,但我无法从 test.php 文件中获取数据。只需要“Hi”字符串,但我触发了错误处理程序,甚至没有返回任何内容:

错误响应

xhr:status 200
status:error
text:-blank-

为什么我不能让这个简单的脚本工作?

编辑:缺少逗号

更新:这是 Firefox 的问题!所有浏览器都可以工作,但它。

4

3 回答 3

1

代码很好,但是你错过了逗号(,data:{id:5}

所以应该是data:{id:5},而不是data:{id:5}

于 2012-06-18T11:47:41.163 回答
1

我有同样的问题,但修复略有不同。

我正在提出一个获取请求

JQueryAjaxSettings ={
    url: '/api/Cart/',
    type: 'GET',
    dataType: "application/json"
};

事实证明,将数据类型提供给 get 请求会导致错误被调用。只需删除即可datatype: "application/json"

于 2013-12-02T01:28:58.130 回答
0

想通了:我http://localhost在打开测试页面时发送 ajax 请求,也就是http://192.168.1.110我自己的本地 IP 地址。当然,Javascript“同源策略”弄得一团糟并破坏了请求。

将 ajax 请求更改为http://192.168.1.110现在一切顺利。

于 2012-06-18T13:28:51.610 回答