当前位置:  开发笔记 > 编程语言 > 正文

使用jQuery同步交叉子域POST请求

如何解决《使用jQuery同步交叉子域POST请求》经验,为你挑选了1个好方法。

我正在尝试执行跨域POST请求并且已经打了一个墙(或两个).

我无法在服务器上放置代理页面 - 因此这不是一个选项.

我研究了getJSON,除了我需要POST不GET之外,它工作得很好.

是否有可能做到这一点?如果不是,有人可以向我解释getJSON如何工作以及为什么我不能做出替代方案.



1> 小智..:

您不能使用XMLHttpRequest(aka AJAX)发出跨域请求(GET/POST /等).

当服务器支持它时,您可以做的是发出JSONP请求.JSONP请求的工作方式如下:

jQuery使用您提供的回调函数创建一个全局可访问的函数作为参数

而不是使用XMLHttpRequest(AJAX)来发出HTTP请求,jQuery动态地将SCRIPT标记插入到DOM中

脚本标记的SRC是您尝试与之通信的请求URL

jQuery向查询字符串添加一个回调参数,如下所示:example.com/someurl.js?callback=someDynamicallyGeneratedMethodName

然后由SERVER通过将JSON结果作为参数传递给someDynamicallyGeneratedMethodName来返回客户端可以使用的JavaScript

如果您无法控制要发布的服务器,那么您运气不好,JSONP对您没有太大帮助.无论服务器返回什么都将在SCRIPT标记中,并且如果格式不正确,很可能会抛出错误.

有关这方面的更多信息,我建议您查看基本的$ .ajax函数而不是快捷方式.(在Ajax下的jQuery文档中.抱歉,我无法发布更多链接)

同样,如果您无法控制要发布的服务器,则可能需要查看代理.否则,IFRAME可能是您唯一的其他选择.还有一种方法可以使用SWF(flash)对象来实现此目的.我既没有尝试过,但它们是XMLHttpRequest对象限制的解决方法.

希望我能帮忙!


呃,这个评论与这个话题有什么关系?它不包括OT特别要求的POST!
推荐阅读
围脖上的博博_771
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有