问题标签 [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.
jquery - 嵌套 $.getJSON 的范围问题
在这一行
实际上页面挂起时不显示输出
任何帮助将不胜感激。
谢谢你
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 上运行。
jquery - FireBug 和监控 JSONP 跨域请求
这个问题特定于 Firefox 的 Firebug 插件。实际功能有效,但我失去了在 Firebug 中监视和调试它的能力。
我有一个用来JSON
获取数据的网站。在 Firebug 中,我能够监控JSON
请求。它会向我显示它们中的每一个、标题和返回的数据。
我需要更改我提交JSON
请求的服务器。为了让跨域JSON
工作,我使用JSONP
了回调=?方法。我得到了工作的功能。但是,我现在无法JSONP
在 Firebug 中监控和调试我的请求。
作为记录,这在 Firefox 3.0.11 中,我使用带有 &callback=? 的 jQuery 我的JSONP
请求的参数。
如何让JSONP
请求显示在 Firebug 中?
jquery - javascript - 想要使用 ajax 访问另一个域的内容?
我正在尝试编写一个从openstreetmap API(http://wiki.openstreetmap.org/wiki/OSM_Protocol_Version_0.6)加载数据的javascript应用程序,它基本上只是一个宁静的xml api。我正在尝试使用 jquery 来访问 XMl。但是我收到安全错误。这是一个跨站点脚本阻止。
如何访问该 XML?AFAIK OSM 不提供 jsonp,所以这不起作用。到底有没有?>
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 响应,并且正在返回内容。
有什么帮助吗?
.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
php - 使用 JavaScript 和 PHP 使用 JSON
2个简短的问题。我将不胜感激答案或指向关于 SO 的已回答问题的指针(我在询问之前进行了搜索:))。
- 我想使用返回 JSON 对象的TRYNT的 Web 服务之一(例如这个)。我是否正确推断如果他们不指定 JSONP,由于跨站点脚本限制,我无法在没有服务器端代理的情况下从客户端使用这些服务?
- 好的,所以我尝试实现一个 PHP 代理来使用该服务并将 JSON 返回到 HTML,但发现我的(免费)网络托管服务阻止了 CURL 库。作为一个新手 PHP 开发人员(ASP.Net 是我通常的专长,但我决定是时候进行分支了 :))——我还有哪些其他选择可以从 PHP 中获取 JSON 结果?
任何帮助表示赞赏。
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
这是我用来执行表单的代码(或尝试这样做):
有人可以帮我将我的数据发布到外部网站:)
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?
javascript - 在本地主机上运行时不执行 JSONP 回调
这很奇怪,我想知道是否有人可以解释为什么会这样。
基本上,我一直在努力测试 JSONP,这样我就可以实现其他网站可以使用的 JSON Web 服务。我正在本地主机上进行开发——特别是 Visual Studio 2008 和 Visual Studio 2008 的内置 Web 服务器。
因此,作为带有 jQuery 的 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 中: