【问题标题】:JSONP how to retrieve textJSONP如何检索文本
【发布时间】:2011-01-30 19:06:33
【问题描述】:

我确实了解 JSON/JSONP 的什么,但我不是程序员,也不知道如何提取简单的基础知识以供简单使用。我已经阅读了很多关于 JSONP 的内容和很多关于 JSONP 各种用法的示例,但是我还没有找到一个从另一个页面检索文本的简单示例(例如 @987654321@)。

有人可以举一个 jQuery/JSONP 设置的示例,用于将文本检索到 div 中吗? 我认为这是 JSONP 的一个非常基本的用法。

【问题讨论】:

    标签: jquery jsonp


    【解决方案1】:

    首先,重要的是要了解,要使 JSONP 工作,服务器必须知道它将与 JSONP 请求联系。换句话说,你不能只是向某个随机服务器发出请求,并期望它在服务器没有正确准备的情况下工作。

    如果您知道一个服务器的 URL 旨在接受和响应 JSONP 请求,那么它将返回给您的是一个封装在函数调用中的 JSON 表达式。您的页面将包含该函数,因此当服务器返回结果时,浏览器将解释 JSON 表达式,然后调用该函数。

    因此,如果您想创建一个返回漂亮文本块的服务,您将像这样调用该服务:

    $.getJSON("http://www.domain.com/external/text.aspx?callback=", function(data) {
      $('#targetDiv').text(data.text);
    });
    

    jQuery 代码将准备好一切,以便告诉服务器(通过 HTTP 请求中名为“jsonp”的参数)要调用的函数的名称(jQuery 本身将为您构建该函数)。服务器应该这样响应:

    jqueryFunctionName({text: "This is a nice block of text."})
    

    【讨论】:

    • 非常感谢您提供了一个简单明了的示例。我特此推荐你作为诺贝尔教育学奖的第一人选。你也可以用纸杯蛋糕……或其他东西犒劳自己。有一件事,只是为了安全起见:我将您的代码放在 HTML div 代码下方的 标记之间。另外,我在 标记中有一个指向 jquery-1.4.2.min.js 的链接。那正确吗?如果是这样,它不起作用,这意味着服务器没有为 JSONP 设置。正确的?我可能会在这里突破限制,但是您能否举例说明如何通过代理检索文本?真的很感激。
    • 是的,是的——抱歉,我并没有试图提供一个完整的代码页面。是的,您获取 JSON 内容的 jQuery 调用将在脚本标记内,并且可能在某种事件处理程序内 - 可能是对“点击”或其他内容的响应。至于代理——假设你的意思是一个 HTTP 代理——那么根本不应该有什么特别之处;如果您可以从浏览器访问服务器以获取正常的 URL,那么您应该没有问题。对 JSON 内容的 HTTP 请求没有什么“奇怪”的地方。
    • 我必须创建 JSON 文件吗?
    • 嗯,something 必须创建它,并且某些东西必须在您联系的服务器上。就像我说的,这不是你可以对任何随机服务器做的事情:它必须已经支持 JSONP 交互。
    猜你喜欢
    • 2019-05-29
    • 2012-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-19
    • 2022-01-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多