问题标签 [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 投票
11 回答
142340 浏览

javascript - AJAX跨域调用

我知道 AJAX 跨域策略。所以我不能只通过 ajax HTTP 请求调用“ http://www.google.com ”并将结果显示在我网站的某处。

我用 dataType "jsonp" 试了一下,这实际上可以工作,但我得到一个语法错误(显然是因为接收到的数据不是 JSON 格式的)

是否还有其他可能接收/显示来自外国域的数据?iFrame 遵循相同的政策?

0 投票
10 回答
4416 浏览

javascript - How can I validate/secure/authenticate a JavaScript-based POST request?

A product I'm helping to develop will basically work like this:

  • A Web publisher creates a new page on their site that includes a <script> from our server.
  • When a visitor reaches that new page, that <script> gathers the text content of the page and sends it to our server via a POST request (cross-domain, using a <form> inside of an <iframe>).
  • Our server processes the text content and returns a response (via JSONP) that includes an HTML fragment listing links to related content around the Web. This response is cached and served to subsequent visitors until we receive another POST request with text content from the same URL, at which point we regenerate a "fresh" response. These POSTs only happen when our cached TTL expires, at which point the server signifies that and prompts the <script> on the page to gather and POST the text content again.

The problem is that this system seems inherently insecure. In theory, anyone could spoof the HTTP POST request (including the referer header, so we couldn't just check for that) that sends a page's content to our server. This could include any text content, which we would then use to generate the related content links for that page.

The primary difficulty in making this secure is that our JavaScript is publicly visible. We can't use any kind of private key or other cryptic identifier or pattern because that won't be secret.

Ideally, we need a method that somehow verifies that a POST request corresponding to a particular Web page is authentic. We can't just scrape the Web page and compare the content with what's been POSTed, since the purpose of having JavaScript submit the content is that it may be behind a login system.

Any ideas? I hope I've explained the problem well enough. Thanks in advance for any suggestions.

0 投票
1 回答
189 浏览

javascript - 未来的安全措施会限制 JSONP 的跨域异步功能吗?

同源策略的未来修订或其他浏览器安全措施是否有可能阻止 JSONP 的跨域异步请求能力?

如果开发人员打算在公共环境中提供异步功能,则必须考虑这一点。

0 投票
4 回答
635 浏览

jquery - 如何存储和访问网站的 JSON 数据?

我正在构建一个 HTML/jQuery 站点,其中几乎所有内容都来自远程 JSON 数据。我在想出一种将来存储和访问数据的好方法(范围方面)时遇到了麻烦。

目前,我编写了一个 jQuery 插件,可以在网站加载时获取 JSONP 数据。但我还有其他需要访问这些数据的函数和 jQuery 插件。

这些数据应该存储在哪里,以便其他功能和插件可以访问它?

它应该是一个全局变量吗?

如果重要的话,这个站点将只在 iPad 上运行,并且站点的后端在 Rails 中。

0 投票
1 回答
258 浏览

jquery - 从 jQuery 插件启动的 JSONP 方法的模式是什么?

我正在编写一个 jQuery 插件来呈现从页面元素中的另一个域检索到的数据。我遵循我的 jQuery 插件的典型模式:

在插件中,我使用jQuery.getScript(url, [success])获取外部数据。外部数据源允许我定义方法的名称,并将数据包装在对该方法的调用中(JSONP):

这有效地导致:

范围global_callback限制了插件实例可以对数据执行的操作。并且该global_callback方法不知道插件实例化的选择器或选项。

我在想这global_callback只会存储数据,插件会在instance_callback. 但我需要确保instance_callback将检索到正确的数据,我预见到插件的多个实例存在问题。我该如何处理?

谢谢!

0 投票
2 回答
1156 浏览

jquery - JQuery 中的 JSON/JSONP

我试图弄清楚为什么我的 $.getJSON 方法似乎不起作用,但 $.ajax 工作得很好。首先,这是我的 getJSON 调用:

您可以看到我已经尝试将回调参数直接添加到查询字符串(也尝试不在字符串上),并且我添加了对我的 js 文件中定义的回调方法的引用。

这是 $.ajax 调用,它工作得很好:

在此示例中,从文本框中提取的 url 与直接调用 getJSON 中的相同。当方法调用完成时,successMethod 被调用并且一切都处理得很好。

虽然我很喜欢使用这两种方法中的后者,但文档表明 getJSON 似乎是首选的速记方式。

任何人都可以解释一下我在速记方法中缺少什么以使其全部工作吗?

提前致谢。

0 投票
5 回答
12865 浏览

google-chrome - 在 Chrome 扩展中使用 jQuery.getJSON

我需要在 chrome 扩展中进行跨域请求。我知道我可以通过消息传递来实现,但我宁愿只使用 jQuery 习语(所以我的 javascript 也可以作为<script src="">.

我做的是正常的:

但在错误控制台中我看到:

jQuery 是否没有将回调函数正确插入到文档中?我能做些什么来完成这项工作?

(如果我将代码粘贴到 chrome 控制台中,它可以正常工作,但如果我将其作为 page.js 放在扩展程序中,则会出现问题。)

0 投票
3 回答
223 浏览

javascript - 将 ajaxified Webpart 插入现有的 MOSS 站点

我需要编写一个 webpart,其目的是异步获取一些文档并将它们显示到现有页面中。不幸的是,我不得不面对很多限制,到目前为止,我寻找解决方案的努力似乎毫无用处。

1)我不能使用 Microsoft asp.net ajax
2)我必须使用 Jsonp,因为被调用的服务(页面,无论......)在站点的域之外。这不是什么大问题。
3) 我无法更改现有页面代码,因此无法引用外部库,例如 JQuery。
4) 出于同样的原因,我无法在 window.onLoad 事件上调用我的方法,所以这里的问题是:如何确保在触发我的 ajax 调用之前正确加载所有内容?
5)既然同一个webpart的多个实例可以放在同一个页面中,那么各个js函数之间会不会有一些可能的冲突呢?

0 投票
2 回答
9716 浏览

javascript - ajax 响应字节大小

我正在使用 jQuery 的 getJSONP,我想记录调用的持续时间和响应的大小,以便能够对我的应用程序的使用情况进行一些统计。这是一个跨域 ajax 调用,所以我需要使用 JSONP,但是由于 JSONP 调用不是使用 XMLHttpRequest 对象完成的,所以来自 jquery ajax 的完整回调不会传递响应内容。

所以我的问题是如何从 JSONP 调用中获取响应大小(内容长度)。

这里 x 是 JSON 调用的 XMLHttpRequest 对象,但 JSONP 调用是未定义的。

0 投票
2 回答
351 浏览

jquery - JSON-P格式的3个问题

我必须编写一个脚本,该脚本将托管在不同的域上。该脚本必须从我的服务器获取信息。

所以,stackoverflow 的用户告诉我,我必须使用JSON-P 格式,经过研究,这就是我要做的。(JSON-P 中提供的数据用于在其他网站上显示托管在我的服务器上的一些信息)

  1. 如何从我的服务器输出 JSON-P?json_encode是否与from 的功能相同PHP

  2. 我如何为输出 JSON-P 设计树模式(你知道,比如:({“name”:“foo”,“id”:“xxxxx”,“blog”:“ http://xxxxxx.com ” }); 我可以从我的 XML 输出中窃取这个吗?(http://bit.ly/9kzBDP

  3. 每次访问者浏览我的小部件所在的网站时,它都会在我的服务器上发出请求,请求 JSON-P 数据显示在客户端。 它会显着增加 CPU 负载(网站上的 1 个访问者将在我的服务器上拥有脚本 = 1 个 SQL 请求以输出数据),所以有什么方法可以“缓存”JSON-P 信息输出以仅刷新它每天一到两次并将其存储到“文件”中(在哪个扩展名中?)。

但另一方面,我会说直接请求 JSON-P 数据(不缓存它)是一个优点,因为将集成脚本的网站只想显示他们的信息而不是整个数据。所以,用这样的东西制作一个脚本:

其中filter = 网站想要显示的信息。

  • 额外的问题:我必须使用 JS 框架来阅读 JSON-P 吗?或者没有任何框架的JS纯页面可以做到这一点?

你怎么看 ?

非常感谢你 ;)