3

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

现在我尝试添加 --Access-Control-Allow-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 );
    });
});
4

3 回答 3

5

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

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

使用以http://localhost/

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

于 2013-09-22T18:22:33.537 回答
3

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

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

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

于 2013-11-07T02:19:56.013 回答
-1

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

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

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

于 2015-05-12T07:51:11.373 回答