Chrome Origin 空值是 Access-Control-Allow-Origin 所允许的


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

我已经准备好了许多其他帖子,ppl在这里询问了不允许blablabla的起源,

现在我尝试添加 --访问控制-允许-Origin 并启用应用程序甚至禁用安全性,但每次我在 php 页面上尝试我的按钮时,它都会不断说明

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

谁能帮我?这是导致问题的代码

页.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>

脚本.js

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

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

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

使用以 http://localhost/ 开头的网址

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

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

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

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

有这个chrome插件允许从任何来源请求任何带有ajax的网站。添加到响应"允许控制允许源:*"标头

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

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