在jQuery Docs中,它提到了one can use multiple dataType
s in a jQuery.ajax()
request(数据类型部分)。这非常适合我想要做的事情,但它并没有像我预期的那样工作。它仍然使用JSON解析器解析响应,但在它以明文形式处理响应之前失败,就像配置应该要求的那样。这是我的代码:
jQuery.ajax({
dataType: "jsonp html",
url: "http://nomads.ncep.noaa.gov:9090/dods/rap/rap20120821/rap_f01.ascii?ugrdprs[7][0][-364][716]",
success: function( data ) {
console.log(data);
callback(null, 'ucb');
},
});
根据Chrome Inspector中的“网络”标签,该功能成功获取了该文件,但它给了我错误
Uncaught SyntaxError: Unexpected token <
而不是像jsonp那样将其转换为html。
知道这里有什么问题吗?谢谢!
答案 0 :(得分:0)
JSONP有
在您的网址末尾添加额外的"?callback=?"
以指定回调。
例如,如果你打电话
https://gdata.youtube.com/feeds/api/videos/XZQFBbdOLRQ?v=2&alt=json
你可以看到纯粹的json。
但是,如果你打电话 https://gdata.youtube.com/feeds/api/videos/XZQFBbdOLRQ?v=2&alt=json&callback=jQuery1234
您的数据位于 jQuery1234(...)
然后,jquery会解析 jQuery1234(...)
中的数据
-------------------------------------------------- -------------------------------------
xml和html
也是如此如果你打电话 https://gdata.youtube.com/feeds/api/videos/XZQFBbdOLRQ?v=2&callback=jQuery1234
(上面的链接会在 jQuery1234(...)中显示xml数据)
如果要将jsonp数据转换为html 这是我的建议:
http://example.com/?callback=jQuery1234
示例回复:
jQuery1234("<html><head></head><body>Hello World!</body></html>");
如果将dataType设置为“jsonp html”, jquery会将您的回复视为html。