如何使用ajax POST实现跨域资源共享(CORS)
How to do Cross-origin resource sharing (CORS) with ajax POST
我需要做一个跨域资源共享(CORS)通过ajax POST请求到另一个域站点的控制器类(MVC)的一个动作,这是保持会话。我该如何做到这一点?我使用jQuery ajax调用这通过设置跨域属性为true。
如果你能给我一个代码示例就更好了。
场景
域A ----> Ajax调用->域B以保持域B的会话,直到用户从域A注销。对于这个Ajax调用,我计划在域B内使用JS文件
你有两种可能。您可以在域B上启用CORS并使用jQuery AJAX访问它。请注意,CORS仅在现代浏览器中受支持;特别是在IE 10+中。IE8和IE9有XDomainRequest对象,你可以用它来做同样的事情,但它有一些限制。见:http://caniuse.com/搜索=歌珥。
第二种可能性是使用动态创建的iframe,并在其中创建一个表单,并将其发布到域b。代码将像这样:
$("<iframe id='ifr' style='display:none;'></iframe>").appendTo("body");
var iframe = $("#ifr");
iframe.load(function () {
//Do something after iframe has been sent
//At least we need to remove the iframe
iframe.remove();
});
var iframeContents = iframe.contents();
var iframeBody = iframeContents.find("body");
iframeBody.append("<form id='myForm' action='yourURLComesHere' method='post'></form>");
var iframeForm = iframeBody.children("form");
//If you need form values, you can do it like this:
iframeForm.append("<input type='hidden' name='inputName' value='inputValue' />");
iframeForm.submit();
域A到域B (keepalive of Session): Too contradictory to share the sessions.
应该维护同源策略安全特性CSRF。
你不能从"DomainA"的站点向"DomainB"的URL发送Ajax调用,浏览器不允许,这是一个安全特性。你所能做的就是发送一个Ajax请求到"DomainA",并让服务器端将该消息转发给"DomainB"。
相关文章:
- Angularjs 跨源资源共享 (CORS) 发布或放置方法在 IE8 和 IE9 中不起作用
- THREE.js:跨来源资源共享策略拒绝跨来源映像加载
- 使用jQuery和Tornado实现跨源资源共享(CORS)
- 跨域资源共享 (CORS) 是否区分 HTTP 和 HTTPS
- RGBaster - 来自源的映像已被跨源资源共享策略阻止加载
- 跨域资源共享(CROS)似乎不适用于PhoneGap中的Windows Phone 8
- 解决与烧瓶的跨源资源共享问题
- 解决跨站点脚本资源共享问题
- 跨来源资源共享策略拒绝跨来源映像加载
- 如何在我的移动应用程序(cordova)上启用跨域资源共享,它连接到API(在Yii中)
- 跨域资源共享(CORS)概念
- IE10和跨域资源共享(CORS)问题与图像/画布
- 为什么没有更多的oEmbed提供商在其端点上启用跨域资源共享?
- 如何配置以Joomla为服务器的跨域资源共享(Cross Origin Resource Sharing, CORS)
- 跨域资源共享的XMLHttpRequest问题
- 从浏览器托管的JavaScript应用到自定义服务器的跨域资源共享
- 如何通过授权信息有选择地允许跨域资源共享
- Tumblr 上的 JS:“跨域资源共享策略”错误
- 跨域资源共享GET: '拒绝获取不安全的标题"etag"'从响应
- 如何使用ajax POST实现跨域资源共享(CORS)