Access-Control-Allow-Origin不允许使用Chrome Origin null

时间:2013-09-22 14:57:51

标签: javascript php jquery google-chrome

我已经准备好许多其他帖子ppl在这里问过关于起源不允许blablabla,

现在我尝试添加--Access-Control-Allow-Origin并启用应用程序甚至禁用安全性,但每次我在php页面上尝试我的按钮时它都会一直说明

Origin null is not allowed by Access-Control-Allow-Origin.

任何人都可以帮助我吗?以下是导致问题的代码

page.php文件

<html land="en">
<head>
    <meta carset="utf-8">
    <link rel="stylesheet" type="text/css" href="style.css";
</head>

<body>
<!-- Document Ready Event -->
<input id="text" type="text" /><input id="submit" type="button" value="Submit" />

<div id="feedback"></div>
    <script src="../jquery-1.10.2.min.js"></script>
    <script src="script.js"></script>
</body>
</html>

的script.js

$('#submit').click( function()
{
var text = $('#text').val();

$.get( 'PHP/reverse.php', { input: text }, function( data )
    {
        $('#feedback').text( data );
    });
});

3 个答案:

答案 0 :(得分:5)

Origin null is not allowed by Access-Control-Allow-Origin表示您尝试在本地文件上执行Ajax。出于安全原因,这是禁止的。即使不是这种情况,您的PHP也无法运行,因为Web服务器支持PHP,而不是Web浏览器。

您已安装Web服务器。您必须通过服务器请求您的页面,而不是直接从您的文件系统访问它们。

使用以http://localhost/

开头的网址

您需要移动文件,使其位于服务器DocumentRoot下(或重新配置服务器,以便它可以从当前位置访问它们)。

答案 1 :(得分:2)

我不确定您要测试哪种浏览器。就我而言,如果我从本地文件发送AJAX调用,它适用于我的所有浏览器,这意味着Origin is null。我想你无法让它工作的原因是需要一些服务器端编码。

尝试此操作,将Access-Control-Allow-Origin标头添加到HTTP响应中,并将值设置为*。我不确定如何在PHP中执行此操作,但这里有一段Java代码供您参考。

response.setHeader("Access-Control-Allow-Origin", "*")

答案 2 :(得分:-1)

有这个chrome插件允许从任何来源请求任何带有ajax的站点。添加到响应'Allow-Control-Allow-Origin:*'标题

https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi/related

它对我有用,无需在服务器端进行任何更改。但是如果它符合您的测试,您应该在请求中更改withCredentials:false。