Javascript 跨源资源错误:否';访问控制允许原点';请求的资源上存在标头

Javascript 跨源资源错误:否';访问控制允许原点';请求的资源上存在标头,javascript,html,reactjs,Javascript,Html,Reactjs,我正在尝试运行一个使用ReactJS库的页面。我得到以下错误: Redirect at origin 'https://fb.me' has been blocked from loading by Cross-Origin Resource Sharing policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:55042' is

我正在尝试运行一个使用ReactJS库的页面。我得到以下错误:

Redirect at origin 'https://fb.me' has been blocked from loading by Cross-Origin Resource Sharing policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:55042' is therefore not allowed access. 在原点处重定向https://fb.me'已被跨源资源共享策略阻止加载:请求的资源上不存在'Access Control Allow Origin'标头。起源'http://localhost:55042因此,不允许访问。 我的代码如下所示:


Javascript简单测验
var helloWorld=React.createClass({render:function(){return
你好,肯
这是我,斯皮廷

} }); 反应( ),文件正文);
我特意去掉了
DOCTYPE
标记,它不是问题的根源,因为我认为REACT不需要它。

删除
type=“text/jsx”
。它无效,并且浏览器未将其视为远程javascript文件。

快速回答 这里的问题是,您试图在未提供CORS头的资源上使用

简单的答案是其中之一

  • 使服务器支持CORS(仅当您控制服务器时才可能)
  • 停止执行子资源完整性检查(即从
    元素中删除
    完整性
    交叉源
    字段)
  • 从相同的源位置提供脚本(即,使主机和域在脚本位置和页面URL之间匹配)
这到底是怎么回事?
integrity
字段显示“仅当其内容的SHA384哈希与此字符串匹配时才加载此资源:
xQae1pUP…

但是,同源策略要求脚本尽可能少地了解来自另一个源的资源。因为您的代码没有在源
https://fb.me
,它不能从
https://fb.me
(除非服务器位于
https://fb.me
主动允许此操作(通过)

但是,子资源完整性机制将有效地允许您检查资源,并对其内容提出一系列是/否问题:

  • “资源的哈希值是否匹配
    sha384-xQae1pUP…
    ?”
  • “没有?好吧,那
    sha384-vPt5Lq1…
    呢?”
  • “也不是这样,是吗?嗯,是不是
    sha384-18dh2ca…
    ?”
以此类推,直到你得到正确的答案,或者至少消除许多错误的答案


如果服务器支持CORS,那么浏览器将允许您的脚本读取整个资源,因此浏览器当然也将允许您的脚本确定资源的内容是否散列到特定值。

使用Caddy是避免reactjs中CORS错误的一种方法。它是一个类似Apache、nginx或lighttpd的web服务器。在JS文件上使用

Why
type=“text/jsx”
既简单又容易?我在尝试探索问题的同时,在最后一分钟尝试了这一解决方案。你可以忽略这一点。但是很好,您需要删除crossorigin字段和integrity字段。这应该被接受为答案。@apsillers I因为你解释了真正发生的事情。。也许你可以看看我在这里问的一个类似的问题。