Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用ajax POST进行跨源资源共享(CORS)_Javascript_Jquery_Ajax_Cross Domain_Cors - Fatal编程技术网

Javascript 如何使用ajax POST进行跨源资源共享(CORS)

Javascript 如何使用ajax POST进行跨源资源共享(CORS),javascript,jquery,ajax,cross-domain,cors,Javascript,Jquery,Ajax,Cross Domain,Cors,我需要通过ajax对另一个域站点的控制器类(MVC)的操作进行POST请求来进行跨源资源共享(CORS),这是为了保持会话。我如何做到这一点?我通过将跨域属性设置为true来使用jqueryajax调用 最好能给我看一个代码示例 情景 域A-->Ajax调用-->域B以保留域B的会话,直到用户从域A注销。对于此Ajax调用,我计划在域B内使用JS文件您不能将Ajax调用从“域A”中的站点发送到“域B”中的URL浏览器不允许,这是一项安全功能。 您可以做的是向“DomainA”发送一个Ajax请求

我需要通过ajax对另一个域站点的控制器类(MVC)的操作进行POST请求来进行跨源资源共享(CORS),这是为了保持会话。我如何做到这一点?我通过将跨域属性设置为true来使用jqueryajax调用

最好能给我看一个代码示例

情景


域A-->Ajax调用-->域B以保留域B的会话,直到用户从域A注销。对于此Ajax调用,我计划在域B内使用JS文件

您不能将Ajax调用从“域A”中的站点发送到“域B”中的URL浏览器不允许,这是一项安全功能。 您可以做的是向“DomainA”发送一个Ajax请求,并让服务器端将该消息中继到“DomainB”。

域A到域B(保留会话):太矛盾了,无法共享会话


应该维护安全功能。

您有两种可能。您可以在域B上启用CORS,并使用jQueryAjax访问它。请注意,CORS仅在现代浏览器中受支持;尤其是在IE10+中。IE8和IE9有XDomainRequest对象,您可以使用它来执行相同的操作,但它有一些限制。请参阅:

第二种可能是使用动态创建的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();
$(“”)。附加到(“正文”);
变量iframe=$(“#ifr”);
iframe.load(函数(){
//发送iframe后执行某些操作
//至少我们需要删除iframe
iframe.remove();
});
var iframeContents=iframe.contents();
var iframeBody=iframeContents.find(“body”);
iframeBody.append(“”);
var iframeForm=iframeBody.children(“形式”);
//如果需要表单值,可以这样做:
iframeForm.append(“”);
iframeForm.submit();
您的声明“域A-->Ajax调用-->域B以保持域B的会话,直到用户从域A注销。对于此Ajax调用,我计划在域B内使用JS文件”完全是自相矛盾的。