jQuery AJAX 多种内容类型似乎不起作用

标签 jquery ajax

在 jQuery 文档中,它提到 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 AJAX 多种内容类型似乎不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12048078/

相关文章:

javascript - 当使用多种编码时如何分离 json 解析的数据?

javascript - 删除谷歌地图中以前的标记并加载新地点

javascript - jQuery 字段样式的未知问题

javascript - jQuery 弹出窗口显示旧内容而不是新内容

javascript - 通过 Javascript 访问 Twitter

javascript - 如何将 Select 值从 Javascript 传递到 PHP 以在更改时生成选择选项

php - 使用ajax处理php双数组

JavaScript/AJAX 打印异常

javascript - 使用 map/reduce 和 jQuery 顺序运行任意数量的脚本

javascript - 在 dom 中遍历 li 元素