Jquery $.get-不允许使用源代码
今天,我在尝试使用Jquery $.get-不允许使用源代码,jquery,ajax,macos,google-chrome,Jquery,Ajax,Macos,Google Chrome,今天,我在尝试使用$获取服务器上的PHP文件内容时遇到了一个非常奇怪的错误 它只出现在MacOSX(雪豹)上的Safari和Chrome中,在Windows上,它在所有浏览器中都能正常工作 该函数类似于: function _fc() { $.get("_x_fc.php", { xaction: 'login', xv1: $('#login').attr("value"), xv2: $('#pass').attr("value") }, function (data) {
$获取服务器上的PHP文件内容时遇到了一个非常奇怪的错误
它只出现在MacOSX(雪豹)上的Safari和Chrome中,在Windows上,它在所有浏览器中都能正常工作
该函数类似于:
function _fc() {
$.get("_x_fc.php", { xaction: 'login', xv1: $('#login').attr("value"), xv2: $('#pass').attr("value") }, function (data) {
if (data=='0') { letItGo=true; $('#loginform').submit(); }
else ...//Do some other checks
});
}
- 它不是本地服务器,而是具有现有域的web服务器
- 我不想执行任何跨域ajax。两个文件位于同一目录中
我找不到任何解决办法
确切错误:
XMLHttpRequest无法加载
http://www.asking1.com/_x_fc.php?xaction=login&xv1=something&xv2=something.
起源http://asking1.com 访问控制允许原点不允许。
您的答案在错误消息中:
XMLHttpRequest cannot load
http://www.asking1.com/_x_fc.php?xaction=login&xv1=something&xv2=something.
Origin http://asking1.com is not allowed by Access-Control-Allow-Origin.
无法加载XMLHttpRequest
http://www.asking1.com/_x_fc.php?xaction=login&xv1=something&xv2=something.
起源http://asking1.com 访问控制允许原点不允许。
http://www.asking1.com
和http://asking1.com
是不同的原产地,因此这与同一原产地政策相冲突。参见第六个示例
如果您的代码确实是引用的,并且带有相对URL,则不应该发生这种情况,因为从错误消息中,文档是在http://asking1.com
,因此相对路径将解析为http://askign1.com/_x_fc.php
,这很好
如果代码中有绝对路径,那就是问题所在。只需删除它,使其看起来像引用的代码
如果您的代码真的有相对路径,那么您需要深入研究一下。某个地方的某些东西让浏览器认为对www.asking1.com
内容的请求来自asking1.com
www
从技术上讲是一个子域。因此,您违反了同一原产地政策
。您可以通过设置
function _fc() {
document.domain = "www.asking1.com";
$.get("_x_fc.php", { xaction: 'login', xv1: $('#login').attr("value"), xv2: $('#pass').attr("value") }, function (data) {
if (data=='0') { letItGo=true; $('#loginform').submit(); }
else ...//Do some other checks
});
}
或者,您可以完全限定作为AJAX请求的一部分传递的URL,以确保它是相同的。我这样做:
$.get("http://<?php echo $_SERVER['HTTP_HOST']; ?>/_x_fc.php", { xaction: 'login', xv1: $('#login').attr("value"), xv2: $('#pass').attr("value") }, function (data) { (...)
$.get(“http:///_x_fc.php“,{xaction:'login',xv1:$('#login').attr(“value”),xv2:$('#pass').attr(“value”)},函数(数据){(…)
你们是最棒的。谢谢。当你们说这只发生在Mac OS X上时,你们指的是客户端操作系统,对吗?在Mac OS X测试和Windows测试中,这是同一台服务器?我知道这是不同的浏览器,但在这两种浏览器中,我的代码都不起作用。我的服务器基于Unix,我只在Windows和Mac OS X上测试。完整错误-请参阅已编辑的问题但如果OP正在为$.get
调用设置绝对路径,则这只是一个问题,因为他们正在设置相对路径,在这种情况下,实际域将永远不会不同,除非有一个.htaccess文件重定向请求。@Gavin:True——假设引用的代码是准确的(遗憾的是,我经常看到代码被编辑得更短,从而编辑出错误)。不管怎样,错误消息清楚地表明这是一个SOP问题。