0

我对网站的 ajax 请求有疑问。

它作为响应返回一个 json 对象,我无法像往常一样使用 success:function(data) 来处理它。我得到一个

Uncaught SyntaxError: Unexpected token :

chrome上的错误,以及

SyntaxError: 无效标签 {"response":{

火狐...

回应是:

{"response":{
  "header": {
    "found": 6,
    "query": "something"
  },
  "results": [
    { ... }
  ]
}

我想过使用 ajax() 函数的内容字段以某种方式包装响应,但是没有示例可以查看它是如何使用的。处理请求的任何其他想法?

这是我打的电话:

$.ajax({
     url:'http://somesite.com/search/query',
     dataType: 'jsonp',
     data: { q: 'something' },
     success:function(json){
         // debugger;
         alert("Success");
     },
     error:function(err, data){
         alert("Error");
     },
});

来自 jQuery 网站 http://api.jquery.com/jQuery.ajax/

contents 类型:PlainObject 字符串/正则表达式对的对象,根据其内容类型确定 jQuery 如何解析响应。(添加的版本:1.5)

4

2 回答 2

0

您收到错误的原因是因为它不是有效的 JSONP,而只是常规 JSON 缺少回调,除了在服务器端获取内容或让外部服务更改其 API 之外,您无能为力,如JSONP 是唯一支持跨域请求的数据类型,除非启用了 CORS。

于 2013-05-09T10:29:24.547 回答
0

雅虎查询语言是您的另一种选择。

链接:

http://yuiblog.com/sandbox/yui/3.2.0pr1/examples/io/io-xdr.html

http://staff.washington.edu/tabrooks/343INFO/yqlJSON.htm

于 2013-05-09T10:34:17.297 回答