问题标签 [jsonp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
3954 浏览

jquery - 嵌套 $.getJSON 的范围问题

在这一行

实际上页面挂起时不显示输出

任何帮助将不胜感激。

谢谢你

0 投票
1 回答
843 浏览

ruby-on-rails - rack-jsonp 不适用于简单的请求,但适用于 Rails 2.3 中的 .js 调用

我正在使用 Rails 2.3,我决定为 JSONP 提供支持。创建了一个全新的应用程序。然后运行脚本/生成脚手架用户名:字符串

这是我的整个环境.rb

当我访问 localhost:3000/users 时,我得到的只是一个哈希值。当我访问 localhost:3000/users.js?callback=show 时,我得到了很好的结果。

让我们看一下jsonp代码。我不明白为什么响应被包装在一个数组中。

我创建了另一个 Rack 中间件,我替换了这个语句

有了这个声明

现在一切正常。

我拒绝相信这是 rack-contrib 中的一个错误。

有人可以告诉我为什么响应被包装在一个数组中,以及我如何在我的应用程序中使用 rack-contrib。

我的应用程序的完整源代码在这里。只需克隆它并在 localhost:3000 上运行。

0 投票
2 回答
3946 浏览

jquery - FireBug 和监控 JSONP 跨域请求

这个问题特定于 Firefox 的 Firebug 插件。实际功能有效,但我失去了在 Firebug 中监视和调试它的能力。

我有一个用来JSON获取数据的网站。在 Firebug 中,我能够监控JSON请求。它会向我显示它们中的每一个、标题和返回的数据。

我需要更改我提交JSON请求的服务器。为了让跨域JSON工作,我使用JSONP了回调=?方法。我得到了工作的功能。但是,我现在无法JSONP在 Firebug 中监控和调试我的请求。

作为记录,这在 Firefox 3.0.11 中,我使用带有 &callback=? 的 jQuery 我的JSONP请求的参数。

如何让JSONP请求显示在 Firebug 中?

0 投票
3 回答
814 浏览

jquery - javascript - 想要使用 ajax 访问另一个域的内容?

我正在尝试编写一个从openstreetmap API(http://wiki.openstreetmap.org/wiki/OSM_Protocol_Version_0.6)加载数据的javascript应用程序,它基本上只是一个宁静的xml api。我正在尝试使用 jquery 来访问 XMl。但是我收到安全错误。这是一个跨站点脚本阻止。

如何访问该 XML?AFAIK OSM 不提供 jsonp,所以这不起作用。到底有没有?>

0 投票
4 回答
11934 浏览

jquery - JQuery、XmlHttpRequest 和状态码 0

我最近一直在使用 JSONP 和 ASP.NET MVC 做一些跨域 javascript。

特定的控制器操作只会响应 POST 请求,这是设计使然。

在 IE8 中,我可以(通过 Fiddler2)看到响应是正确的,并返回 HTTP 200 响应以及 JSONP javascript。

在 Firefox、Safari 和 Chrome 中,响应仍在返回,具有适当的 HTTP 200 代码和 JSONP 内容,唯一的区别是 JQuery 使用的 XmlHttpRequest 对象将状态代码设置为 0,并将 responseText 设置为空。

最初,我认为这是由于 COR HTTP Preflighting(Http 访问控制),其中自定义标头或 text/plain 以外的内容类型会导致额外的 HTTP 请求(带有 OPTIONS)动词被发送到服务器。我可以在 Fiddler2 中看到 OPTIONS 请求正在以 HTTP 404 响应。

Web 服务器是 IIS7(但生产 Web 服务器将是一个 IIS6 机器)。在 IIS7 中,我可以看到处理程序中列出的标准 OPTIONSVerbHandler,但我不相信这实际上是在做任何事情(事实上,我什至在任何地方都找不到关于 OPTIONSVerbHandler 的任何文档)。

为了解决这个问题,我修改了 JQuery 库以不设置自定义标头,并将内容类型更改为 text/plain 而不是 application/json,Firefox 最终开始绕过 OPTIONS 请求,而只是简单的 POST。

问题仍然在于空响应(根据 XmlHttpRequest 对象),即使 Fiddler2 显示成功的 HTTP 200 响应,并且正在返回内容。

有什么帮助吗?

0 投票
4 回答
9689 浏览

.net - 从 WCF REST Web 服务返回包装在回调函数中的 JSON

我有一个返回 JSON 的 Web 服务,但现在我想修改它以允许调用者指定一个回调函数,以便返回从:JSON DATA 到 specifiedFunction(JSON DATA); 我现在返回 JSON 的方式就是返回一个对象的实例并让 .NET 执行它的序列化魔法,如果我改为只返回一个字符串,我可以添加函数的名称和数据周围的括号,但是然后我在返回中加上引号,因为它是一个字符串,我不想要那些。那么我该怎么做呢?

这样做的原因是我们希望调用我们的 API 的开发人员能够使用动态脚本标签,如http://www.xml.com/pub/a/2005/12/21/json-dynamic-script-tag 中所述。 html

0 投票
3 回答
4597 浏览

php - 使用 JavaScript 和 PHP 使用 JSON

2个简短的问题。我将不胜感激答案或指向关于 SO 的已回答问题的指针(我在询问之前进行了搜索:))。

  1. 我想使用返回 JSON 对象的TRYNT的 Web 服务之一(例如这个)。我是否正确推断如果他们不指定 JSONP,由于跨站点脚本限制,我无法在没有服务器端代理的情况下从客户端使用这些服务?
  2. 好的,所以我尝试实现一个 PHP 代理来使用该服务并将 JSON 返回到 HTML,但发现我的(免费)网络托管服务阻止了 CURL 库。作为一个新手 PHP 开发人员(ASP.Net 是我通常的专长,但我决定是时候进行分支了 :))——我还有哪些其他选择可以从 PHP 中获取 JSON 结果?

任何帮助表示赞赏。

0 投票
4 回答
2082 浏览

jquery - Ajax/JQuery/JSON 表单

我有一个表格,我需要将信息发布到外部网站,但由于某种原因,我收到了一个错误:

错误:[异常...“拒绝访问受限 URI”代码:“1012”nsresult:“0x805303f4 (NS_ERROR_DOM_BAD_URI)”位置:“jquery.core.1-3-2.min.js 行:19”] 源文件:jquery.core.1-3-2.min.js 行:19

这是我用来执行表单的代码(或尝试这样做):

有人可以帮我将我的数据发布到外部网站:)

0 投票
1 回答
486 浏览

javascript - jsonp proxy web app I can install?

After getting stuck trying to access another domain with ajax I discovered I'll need to use jsonp. However the web service I'm using doesn't provide jsonp output. No problem, I can write something simple on my own webserver that will wrap the output of their thing with jsonp. However before I reinvent the wheel, is there some exisiting programme that will do this for me?

0 投票
2 回答
6410 浏览

javascript - 在本地主机上运行时不执行 JSONP 回调

这很奇怪,我想知道是否有人可以解释为什么会这样。

基本上,我一直在努力测试 JSONP,这样我就可以实现其他网站可以使用的 JSON Web 服务。我正在本地主机上进行开发——特别是 Visual Studio 2008 和 Visual Studio 2008 的内置 Web 服务器。

因此,作为带有 jQ​​uery 的 JSONP 测试运行,我实现了以下内容:

在服务器上..

所以最终发生的是我在服务器上设置了一个断点,并且我在第一个“调试器”上都获得了断点;客户端脚本以及服务器上的语句。JSONP URL 确实在页面加载后被调用。这很好用。

我遇到的问题是回调永远不会执行。我在 IE8 和 Firefox 3.5 中都对此进行了测试。没有人会调用回调。也从未达到 catch(err)。什么都没发生!

我已经坚持了一周,甚至在指定端口上的 Telnet 中使用手动键入的 HTTP 请求进行了测试,以确保服务器正在返回格式......

..它是。

然后我突然想到,如果我使用全球化器('.')将主机名从 localhost 更改为 localhost,例如http://localhost.:41559/而不是http://localhost:41559/(是的,添加一个点到任何主机名都是合法的,它是 DNS 什么global::是 C# 命名空间)。然后它起作用了!当我刚刚添加一个点时,Internet Explorer 和 Firefox 3.5 终于向我显示了一条警告消息。

所以这让我想知道,这里发生了什么?为什么后期脚本标记生成可以使用 Internet 主机名而不是普通 localhost?或者这是正确的问题?

显然,这是出于安全原因而实施的,但他们试图保护什么?而且,通过让它与点一起工作,我是否只是在此安全功能中暴露了一个安全漏洞?

顺便说一句,我的 hosts 文件虽然针对其他主机进行了更改,但与 localhost 没有什么特别之处;默认的 127.0.0.1 / ::1 仍然存在,下面没有覆盖。

跟进:出于本地开发目的,我通过添加:

.. 到我的 hosts 文件中,然后将以下代码添加到我的 global.asax 中: