在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检查器中的“网络”标签,该操作成功获取了文件,但出现了错误
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 - jQuery AJAX多种内容类型似乎不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12048078/