【问题标题】:How to return cross domain html in jsonp callback如何在jsonp回调中返回跨域html
【发布时间】:2015-03-05 18:29:04
【问题描述】:

我正在尝试为网站构建嵌入式小部件。此小部件将使用 javascript 从外部网站调用。

当我的小部件脚本添加到网页下面的代码运行时:

var widget = {
    initialize : function(containerId)
    {
        (function($) {
        var url = 'http://localhost:8002/callback.js';

        $.ajax({
            url: url,
            jsonpCallback: 'jsonCallback',
            contentType: "application/json",
            dataType: 'jsonp',
            success: function(data) {
               $("#" + containerId).html(data);
            },
            error: function(e) {
               console.log(e.message);
            }
        });

        })(jQuery);
    }
}

这段代码将我的小部件嵌入到给定的 html 容器 (div) 中,这是我的回调:

jsonCallback(
    {"html": "<html><body>mahmut tuncer</body></html>" }
);

所以,当我将硬编码的 html 作为 json 提供时,它可以工作。现在,我需要做的是:将另一个 html 文件加载为 json 在将我的回调发送回请求网站之前

【问题讨论】:

  • 如何做到这一点取决于您使用的服务器端语言。现在你似乎只有一个静态文件。您需要运行一些以编程方式生成响应的服务器端代码。
  • 也可以考虑使用 CORS 来启用你的输出,这样你就不需要 jsonp。然后你可以发送原始 html

标签: javascript jquery html callback jsonp


【解决方案1】:

如果您使用 JSONP 并且遇到跨域异常,这意味着您尝试从中提取数据的源不支持 JSONP。您可以考虑使用 node.js 或其他东西来完成您的任务。

【讨论】:

  • 我收到跨域异常,因为我的获取请求在“请求者”端运行,而不是在我的源端运行。我的目标是改变这一点。
猜你喜欢
  • 2014-05-13
  • 1970-01-01
  • 2013-06-23
  • 2014-12-20
  • 2013-11-19
  • 2015-03-23
  • 1970-01-01
  • 2012-02-23
  • 1970-01-01
相关资源
最近更新 更多