从react中的ajax jquery访问localhost中的文件不起作用

从react中的ajax jquery访问localhost中的文件不起作用,jquery,ajax,Jquery,Ajax,如果我将ajax中的url替换为“”,那么它可以很好地工作,但对localhost目录文件“”不起作用……如果我在浏览器中打开相同的链接,它也可以工作。下面是我的简单代码 componentDidMount() { $.ajax({ url: "http://localhost/socialNetwork/hi.html" }).done(function (data) { alert

如果我将ajax中的url替换为“”,那么它可以很好地工作,但对localhost目录文件“”不起作用……如果我在浏览器中打开相同的链接,它也可以工作。下面是我的简单代码

componentDidMount() {
            $.ajax({
                url: "http://localhost/socialNetwork/hi.html"
            }).done(function (data) {
                alert(data)
            }).fail(function () {
                alert("error")
            });
        }
它总是说错误…

请尝试以下内容

componentDidMount() {
            $.ajax({
                url: "/socialNetwork/hi.html"
            }).done(function (data) {
                alert(data)
            }).fail(function () {
                alert("error")
            });
        }
更新 在您的评论之后,这是因为CORS问题,并且有解决方案来处理它。如果是本地的,你可以简单地通过

如果你想自己处理的话

PHP

header("Access-Control-Allow-Origin: *");
标题(“访问控制允许原点:”

.htaccess

Header set Access-Control-Allow-Origin "http://localhost:YOUR_PORT/"
标题集访问控制允许原点”http://localhost:YOUR_PORT/“

将_端口更改为通常为80的端口


但我强烈建议不要使用此方法,因为它会导致网站上的实时版本出现一些安全问题。

可能它被标记为外部来源。您需要在php或.htaccess文件中添加
Access Control Allow Origin
头。若您在php页面中添加它,它将只对该特定页面有效。如果您将它添加到.htaccess文件中,它将在每个文件中工作,包括图像、视频等文件

PHP

header("Access-Control-Allow-Origin: *");
.htaccess

Header set Access-Control-Allow-Origin "http://localhost:YOUR_PORT/"

将\u端口更改为通常为80的端口。

@shuresnapali,不客气,启动浏览器开发工具,并在网络部分检查此AJAX请求发送和接收的数据。请附上有问题的快照。@ShuresNepali您的jquery版本是什么?我在浏览器开发工具中看到状态:200,方法:Get,文件:hi.html,域:localhost,原因:xhr,类型:html,传输:250字节,和大小:11字节…这就是allconsole所说的:跨源请求被阻止:同一源策略不允许读取远程资源。(原因:CORS标题“Access Control Allow Origin”丢失)。@ShuresNepali感谢您提供的好信息,我已根据您的反馈更新了我的答案。“希望对你有用。”日勒万我不能对这个答案发表评论。但我认为他现在只在当地工作。即使他将所有这些移动到服务器上,也没有人可以从外部访问,因为
http://localhost:YOUR_PORT/
。他不会在普通服务器上遇到这个问题。此问题仅在本地主机上存在。也许,如果他制作API,他将需要那个,但只在API相关的页面上。