在jQuery Docs中,它提到了one can use multiple dataTypes 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/

10-09 14:26