Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.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托管的本地和远程有区别?_Javascript_Jquery_Ajax_Same Origin Policy - Fatal编程技术网

Javascript 为什么我与AJAX托管的本地和远程有区别?

Javascript 为什么我与AJAX托管的本地和远程有区别?,javascript,jquery,ajax,same-origin-policy,Javascript,Jquery,Ajax,Same Origin Policy,我猜我的部分答案与“同源”有关,但我仍然不完全清楚它何时适用,何时不适用(或者为什么它在一种情况下有效,但在其他情况下不是解决方案) 我正在使用最新的jQuery、jquerymobile和Apache/MySQL/PHP堆栈。客户端可以是Windows7/Firefox38,也可以是iPad/PhoneGap 我的AWS托管php代码有助于解决“同源”问题: 我的应用程序的Phone Gap版本按预期工作,从我的AWS服务器检索数据并呈现它检索到的数据 从我的笔记本电脑浏览器调用完全相同的代码

我猜我的部分答案与“同源”有关,但我仍然不完全清楚它何时适用,何时不适用(或者为什么它在一种情况下有效,但在其他情况下不是解决方案)

我正在使用最新的j
Query、jquerymobile和Apache/MySQL/PHP
堆栈。客户端可以是
Windows7/Firefox38,也可以是iPad/PhoneGap

我的AWS托管php代码有助于解决“同源”问题:

我的应用程序的Phone Gap版本按预期工作,从我的AWS服务器检索数据并呈现它检索到的数据

从我的笔记本电脑浏览器调用完全相同的代码失败。为什么?

如果我将AJAX URL复制/粘贴到浏览器中,它将正确地从AWS提取JSON数据

为了解决这个问题,我将输出转储到console.log。调用jQueryAjax的“error”部分,而不是“success”部分。如果我在Firefox中使用file Open调用index.html文件(调用JS),或者如果调用本地apache托管的index.html文件,jQuery ajax将跳转到“error”部分,则会出现相同的“error”结果

所以,如果我的phonegap应用程序能工作,但我的笔记本电脑不能,为什么?我的意思是,我看到我的应用程序类似于笔记本电脑的网络浏览器。实际上,它们都有一个不同于我的web服务器的来源,所以我认为要么两者都工作,要么两者都失败

如果有人能帮助澄清这一点,那就太好了——我曾经两次花时间研究一个问题,这个问题只存在于我的开发环境中,但在生产环境中运行良好——这让人沮丧


提前感谢所有人

您的phonegap配置中是否有白名单域?

例:

访问google.com:

<access origin="http://google.com" />

\u

您的phonegap配置中是否有白名单域?

例:

访问google.com:

<access origin="http://google.com" />

\uuuu

$\u服务器['HTTP\u ORIGIN']
未设置在您的笔记本电脑上。您是在本地测试的服务器上运行,还是通过文件系统运行?这是一个好问题@Rorymcrossan问。请提供有关phonegap应用程序和本地应用程序的详细信息。移动设备如何访问phonegap应用程序?网址?生成的apk或ipa应用程序?@Heru Luin是正确的。我的笔记本电脑Apache服务器没有定义$\u服务器['HTTP\u ORIGIN']——这很有意义——相同的客户端代码,但服务器的配置不同。非常感谢<代码>$\u服务器['HTTP\u ORIGIN']
未设置在您的笔记本电脑上。您是在服务器上运行以进行本地测试,还是通过文件系统运行?这是@RoryMcCrossan提出的一个好问题。请提供有关phonegap应用程序和本地应用程序的详细信息。移动设备如何访问phonegap应用程序?网址?生成的apk或ipa应用程序?@Heru Luin是正确的。我的笔记本电脑Apache服务器没有定义$\u服务器['HTTP\u ORIGIN']——这很有意义——相同的客户端代码,但服务器的配置不同。非常感谢!我不知道白名单的功能,谢谢你指出@Heru luin指出HTTP_ORIGIN并没有设置在我的本地服务器上,我相信这澄清了我的不同之处。你的建议很可能解决了我一开始没有考虑的一个问题:)Thanks@fiprojects:谢谢。您需要区分手机嵌入式web应用程序(如phonegap应用程序)和手机浏览器中显示的网站。。。phonegap不是浏览器,而是本机应用程序中的网络视图。无论如何,祝您开发顺利,我的答案为+1;)我不知道白名单的功能,谢谢你指出@Heru luin指出HTTP_ORIGIN并没有设置在我的本地服务器上,我相信这澄清了我的不同之处。你的建议很可能解决了我一开始没有考虑的一个问题:)Thanks@fiprojects:谢谢。您需要区分手机嵌入式web应用程序(如phonegap应用程序)和手机浏览器中显示的网站。。。phonegap不是浏览器,而是本机应用程序中的网络视图。无论如何,祝您开发顺利,我的答案为+1;)