Jquery 如何解决在子域之间发布时允许源站的AJAX访问控制问题

Jquery 如何解决在子域之间发布时允许源站的AJAX访问控制问题,jquery,ajax,cors,Jquery,Ajax,Cors,我正在尝试解决用户通过http://domain.com,并向http://www.domain.com 我认为最简单的方法是重写http://domain.com至http://www.domain.com?如果是这样,我将如何实现这一点 有没有其他方法允许这样的CORS请求 下面的示例代码 $(文档).on('submit',“#registerform,#confirmreset”,函数(事件){ //禁用默认的单击操作 event.preventDefault(); var action

我正在尝试解决用户通过
http://domain.com
,并向
http://www.domain.com

我认为最简单的方法是重写
http://domain.com
http://www.domain.com
?如果是这样,我将如何实现这一点

有没有其他方法允许这样的CORS请求

下面的示例代码

$(文档).on('submit',“#registerform,#confirmreset”,函数(事件){
//禁用默认的单击操作
event.preventDefault();
var action_url=$(this.attr(“action”);
$(#lightbox').fadeIn(250);
$('#lightbox content table').html(“处理…”);
//console.log(action_url);
var postData=$(this.serializeArray();
//console.log(postData);
$.post(操作\u url、postData、函数(数据){
控制台日志(数据);
var obj=$.parseJSON(数据);
//如果(对象状态==“错误”){
$('#lightbox content table').html(obj.message)
//   }
如果(obj.status==“success”&&obj.message==“success!”)
{
窗口.位置.替换(对象重定向).延迟(0);
}
});
});

如果您有权访问子域,只需为以下内容添加响应标题:

Access-Control-Allow-Origin: *
如果您使用PHP,则如下所示:

<?php header('Access-Control-Allow-Origin: *'); ?>
在没有访问服务器和添加此标题的情况下,唯一的方法是更改浏览器设置,这不是真正的解决方案。对于Google Chrome,使用如下参数打开它:

C:\Program Files\Google\Chrome\Application\chrome.exe --disable-web-security
about:config -> security.fileuri.strict_origin_policy -> false
在firefox中,您必须更改
about:config
如下:

C:\Program Files\Google\Chrome\Application\chrome.exe --disable-web-security
about:config -> security.fileuri.strict_origin_policy -> false

如果您有权访问子域,只需为以下内容添加响应标头:

Access-Control-Allow-Origin: *
如果您使用PHP,则如下所示:

<?php header('Access-Control-Allow-Origin: *'); ?>
在没有访问服务器和添加此标题的情况下,唯一的方法是更改浏览器设置,这不是真正的解决方案。对于Google Chrome,使用如下参数打开它:

C:\Program Files\Google\Chrome\Application\chrome.exe --disable-web-security
about:config -> security.fileuri.strict_origin_policy -> false
在firefox中,您必须更改
about:config
如下:

C:\Program Files\Google\Chrome\Application\chrome.exe --disable-web-security
about:config -> security.fileuri.strict_origin_policy -> false

如果您有权访问子域,只需为以下内容添加响应标头:

Access-Control-Allow-Origin: *
如果您使用PHP,则如下所示:

<?php header('Access-Control-Allow-Origin: *'); ?>
在没有访问服务器和添加此标题的情况下,唯一的方法是更改浏览器设置,这不是真正的解决方案。对于Google Chrome,使用如下参数打开它:

C:\Program Files\Google\Chrome\Application\chrome.exe --disable-web-security
about:config -> security.fileuri.strict_origin_policy -> false
在firefox中,您必须更改
about:config
如下:

C:\Program Files\Google\Chrome\Application\chrome.exe --disable-web-security
about:config -> security.fileuri.strict_origin_policy -> false

如果您有权访问子域,只需为以下内容添加响应标头:

Access-Control-Allow-Origin: *
如果您使用PHP,则如下所示:

<?php header('Access-Control-Allow-Origin: *'); ?>
在没有访问服务器和添加此标题的情况下,唯一的方法是更改浏览器设置,这不是真正的解决方案。对于Google Chrome,使用如下参数打开它:

C:\Program Files\Google\Chrome\Application\chrome.exe --disable-web-security
about:config -> security.fileuri.strict_origin_policy -> false
在firefox中,您必须更改
about:config
如下:

C:\Program Files\Google\Chrome\Application\chrome.exe --disable-web-security
about:config -> security.fileuri.strict_origin_policy -> false
我认为最简单的方法是重写
http://domain.com
http://www.domain.com
?如果是这样,我将如何实现这一点

假设Apache:

<VirtualHost *:80>
    ServerName www.example.com
    Redirect 301 / http://example.com/
</VirtualHost>

<VirtualHost *:80>
    ServerName example.com
    # Your regular server config
</VirtualHost>

服务器名www.example.com
重定向301/http://example.com/
ServerName example.com
#您的常规服务器配置
我认为最简单的方法是重写
http://domain.com
http://www.domain.com
?如果是这样,我将如何实现这一点

假设Apache:

<VirtualHost *:80>
    ServerName www.example.com
    Redirect 301 / http://example.com/
</VirtualHost>

<VirtualHost *:80>
    ServerName example.com
    # Your regular server config
</VirtualHost>

服务器名www.example.com
重定向301/http://example.com/
ServerName example.com
#您的常规服务器配置
我认为最简单的方法是重写
http://domain.com
http://www.domain.com
?如果是这样,我将如何实现这一点

假设Apache:

<VirtualHost *:80>
    ServerName www.example.com
    Redirect 301 / http://example.com/
</VirtualHost>

<VirtualHost *:80>
    ServerName example.com
    # Your regular server config
</VirtualHost>

服务器名www.example.com
重定向301/http://example.com/
ServerName example.com
#您的常规服务器配置
我认为最简单的方法是重写
http://domain.com
http://www.domain.com
?如果是这样,我将如何实现这一点

假设Apache:

<VirtualHost *:80>
    ServerName www.example.com
    Redirect 301 / http://example.com/
</VirtualHost>

<VirtualHost *:80>
    ServerName example.com
    # Your regular server config
</VirtualHost>

服务器名www.example.com
重定向301/http://example.com/
ServerName example.com
#您的常规服务器配置


www.不是一个不同的部分/dir,只是具有
www
的域的别名?重写后端以解析
源站
请求头并返回正确的
访问控制允许源站
头。@RobW谢谢,因此,在上面的编辑中,我将解析
action\u url
?@alias51否。您必须按照我在上一篇评论中描述的方式更新服务器端代码。如果你不能控制服务器,那么你就几乎走运了。如果web服务支持JSONP,那么可以使用jQuery+JSONP。如果没有,并且您确实需要数据,那么您可以使用自动获取资源上正确的CORS头(请参阅)。www.不是不同的部分/dir,但仅是具有
www
的域的别名?重写后端以解析
Origin
请求头并返回正确的
访问控制允许Origin
头。@RobW谢谢,因此,在上面的编辑中,我将解析
action\u url
?@alias51否。您必须按照我在上一篇评论中描述的方式更新服务器端代码。如果你不能控制服务器,那么你就几乎走运了。如果web服务支持JSONP,那么可以使用jQuery+JSONP。如果不是,并且您确实需要数据,那么您可以使用自动获取资源上正确的CORS头(请参阅)。
www.
不是不同的部分/dir,而是具有
www
的域的别名。重写后端以解析
请求头并返回正确的
访问控制允许或允许