在 jQuery 文档中,它提到 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 检查器中的“网络”选项卡,成功获取了文件,但它给了我错误
Uncaught SyntaxError: Unexpected token <
而不是像jsonp那样获取它并将其转换为html。
知道这里可能出了什么问题吗?谢谢!
最佳答案
JSONP 有
在 URL 末尾添加额外的 "?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。
关于jQuery AJAX 多种内容类型似乎不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12048078/