将数据发布到 JSONP
Posted
技术标签:
【中文标题】将数据发布到 JSONP【英文标题】:POSTing data to JSONP 【发布时间】:2011-05-12 09:14:36 【问题描述】:是否可以将数据 POST 到 JSONP?还是所有数据都必须作为 GET 请求在查询字符串中传递?任何示例代码。
谢谢
【问题讨论】:
嗨阿布,JSONP 不能确实用于后期操作。在更大的范围内,它甚至不能用作可靠的技术,因为它基于 javascript 发射,这被许多人视为安全威胁(一些托管商不允许您托管使用 JSONP 的 Web 服务)。只是出于好奇——你为什么需要 POST——你可以通过使用参数调用 get 来做一个“合乎逻辑”的帖子——比如说,我可以向 Db 添加东西并读回它的身份没问题。从 REST 意识形态的角度来看,这并不完全正确,但你知道.. 【参考方案1】:这是一个例子:
$.ajax(
url: ajaxUrl,
dataType: 'jsonp',
type: 'GET',
cache: false,
success: sCallbackFunction,
error: eCallbackFunction,
jsonpCallback: jsonpCallbackFunction,
data: dataObject
);
【讨论】:
【参考方案2】:如果你使用 jQuery,试试 $.post()
http://api.jquery.com/jQuery.post/
编辑: 更详细的解决方案在这里:How to use getJSON, sending data with post method?
【讨论】:
来自该页面:“由于浏览器安全限制,大多数“Ajax”请求都受制于同源策略;该请求无法成功地从不同的域、子域或协议中检索数据。” POST 不能跨域工作。 如果浏览器、框架、服务器等都支持 CORS,则 POST 可以跨域工作。【参考方案3】:不,您不能将数据发布到 JSONP。 JSONP 必须作为脚本标签“提交”,而脚本标签不能 POST 信息。
希望这会有所帮助。
【讨论】:
hmmm 你有如何提交jsonp的示例代码吗?以上是关于将数据发布到 JSONP的主要内容,如果未能解决你的问题,请参考以下文章