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
的域的别名。重写后端以解析源请求头并返回正确的访问控制允许或允许