首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过JSONP发送HTML

问如何通过JSONP发送HTML
EN

Stack Overflow用户
提问于 2011-10-23 00:25:38
回答 3查看 1.4K关注 0票数 3

我正在尝试通过AJAX请求发送模板的html,我需要使用jsonp来避免出现跨源代码错误,但现在我需要将数据类型设置为JSONP。结果,ajax得到了模板,我得到了“未捕获的SyntaxError:意想不到的令牌<”,当我调用(console.log)时,我得到了"jQuery1640440755290677771_1319300298806未被调用“。我如何修复ajax调用,以便让underscore.js模板使用我的html?

谢谢。

代码语言:javascript
复制
$.ajax({
    url: "url",
    cache: "false",
    crossDomain:"true",
    dataType: "jsonp",
    beforeSend: function(xhr) {
        xhr.setRequestHeader("Authorization", "f00");
    },
    success: function(html) {
        console.log(html);
    },
    error: function(data) {
        console.log(data);
    },
EN

回答 3

Stack Overflow用户

发布于 2011-10-23 00:31:07

将完整的json粘贴到jsonlint,看看是什么破坏了它。例如,尝试在html上使用单引号。

票数 0
EN

Stack Overflow用户

发布于 2011-10-23 00:36:33

使用dataType属性的list选项。有关详细信息,请参阅the docs,但TL;DR使用的是datatype: "jsonp html"。否则,它将期望返回JSON,而不是HTML。

您可能需要将HTML内容包装为JSON,但您可能已经这样做了。

票数 0
EN

Stack Overflow用户

发布于 2011-10-23 00:54:13

JSONP的形式如下:

代码语言:javascript
复制
funcName({"key": "value"})

也就是说,传递对象的函数调用。您所要做的就是将HTML模板分配给这个对象的一个属性。结果应该是:

代码语言:javascript
复制
funcName({"template": "<p>Template</p>"})

您必须相应地设置服务器。

另一种选择是在服务器上设置Access-Control-Allow-Origin: *响应头(当然,不要在Ajax调用中将json指定为数据类型)。

有关详细信息,请参阅。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7860891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档