我会通过使用jQuery $.ajax函数解决这个问题,但在这种情况下jQuery不是选项.相反,我将使用CORS请求.我觉得响应请求的网络服务器出了问题,我很难搞清楚问题所在.
这是我创建CORS请求的代码
var httpRequest = new XMLHttpRequest();
httpRequest.open('POST', url, true);
httpRequest.setRequestHeader( 'Access-Control-Allow-Origin', '*');
httpRequest.setRequestHeader( 'Content-Type', 'application/json' );
httpRequest.onerror = function(XMLHttpRequest, textStatus, errorThrown) {
console.log( 'The data failed to load :(' );
console.log(JSON.stringify(XMLHttpRequest));
};
httpRequest.onload = function() {
console.log('SUCCESS!');
}
Run Code Online (Sandbox Code Playgroud)
这是console.log错误:
XMLHttpRequest无法加载 http://test.testhost.com/testpage.请求标头字段Access-Control-Allow-Origin不允许使用Access-Control-Allow-Origin.
以下是标题信息:
> Remote Address:**.**.***.**:80 Request
> URL:http://test.testdomain.com/testpage Request
> Request Method:OPTIONS
> Status Code:200 OK
Run Code Online (Sandbox Code Playgroud)
请求标题:
OPTIONS /content-network HTTP/1.1
Host: test.testhost.com
Connection: keep-alive
Cache-Control: no-cache
Pragma: no-cache
Access-Control-Request-Method: POST
Origin: http://test.testdomain.com
User-Agent: Mozilla/5.0 (Macintosh; Intel …Run Code Online (Sandbox Code Playgroud) 我收到以下错误消息,我无法继续
无法加载https://site/data.json:对预检请求的响应未通过访问控制检查:所请求的资源上没有'Access-Control-Allow-Origin'标头。因此,不允许访问源' http:// localhost:8080 '。如果不透明的响应满足您的需求,请将请求的模式设置为“ no-cors”,以在禁用CORS的情况下获取资源。localhost /:1未捕获(承诺)TypeError:无法获取
我正在尝试CORS在我的react js文件中启用,但无法获得预期的结果。我已经安装了chrome扩展程序,并且可以正常工作。但是要在生产站点中使用它,我需要在代码中启用它。我应该如何正确安排代码以启用CORS。
fetch(URL, {
mode: 'cors',
headers: {
'Access-Control-Allow-Origin':'*'
}
})
.then(response => response.json())
.then(data => {
Run Code Online (Sandbox Code Playgroud) 我很久以前就听说过CSRF,而我大部分时间都听到的是:
防止CSRF攻击很重要,因为有人不会自动提交表单(使用机器人或其他东西)
嗯,这不是100%的真实,是吗?
我已经做了大约3年的网络抓取,并且提出请求,解析csrftokenmiddleware字段并将其与其他字段一起发布是非常简单的.
那么,它究竟是什么呢?
添加到数据库显示错误。我该怎么办?
从源“ http://localhost:3000 ”获取“http:xxx”的访问已被 CORS 策略阻止:对预检请求的响应未通过访问控制检查:无“Access-Control-Allow-Origin”标头存在于请求的资源上。如果不透明响应满足您的需求,请将请求的模式设置为“no-cors”以在禁用 CORS 的情况下获取资源。
我的功能:
addItem = (e) => {
e.preventDefault();
const ob = {
X: 53.0331258,
Y: 18.7155611,
}
fetch("http://xxx", {
method: "post",
headers: {
"Content-Type": "application/json"
},
body: JSON.stringify(ob)
})
.then(res => res.json())
.then(res => {
console.log(res);
})
Run Code Online (Sandbox Code Playgroud)
}
我有一个简单的龙卷风服务器,它有类:
class BaseHandler(tornado.web.RequestHandler):
def set_default_headers(self):
print "setting headers!!!"
self.set_header("Access-Control-Allow-Origin", "*")
Run Code Online (Sandbox Code Playgroud)
当发出常规(无CORS)请求时,服务器按预期应答,包括Access-Control-Allow-Origin标头.但是当我发出来自不同域(使用jQuery.post)的帖子请求时,响应为404并显示错误:"XMLHttpRequest无法加载http:// dev-machine:8090/handshake.No'Access -Control-Allow-Origin '标题出现在请求的资源上.因此,不允许来自' http:// localhost:8090 '的响应.响应的HTTP状态代码为404."
你能告诉我是否遗漏了什么吗?(另一个标题/其他配置/其他)
getStaticProps正在对有效的 API进行网络调用superhero.com,但当我尝试在其中进行相同的操作时useEffect,会抛出 CORS 错误。
从源“http://localhost:3000”获取“https://superheroapi.com/api//1”的访问已被 CORS 策略阻止:不存在“Access-Control-Allow-Origin”标头所请求的资源。如果不透明响应满足您的需求,请将请求模式设置为“no-cors”以在禁用 CORS 的情况下获取资源。
我尝试过使用fetch和axios进行网络调用,但遇到了相同的错误。问题或限制是否出在 Next.js 上?
编辑:尝试使用JSON 占位符API useEffect,它正在工作。
我必须处理一个不受我控制的RESTful服务器.当我尝试从中获取ID 1记录时,这是我得到的错误:
XMLHttpRequest cannot load http://www.example.com/api/v1/companies/1.
No 'Access-Control-Allow-Origin' header is present on the requested
resource. Origin 'http://localhost:4200' is therefore not allowed
access.
Run Code Online (Sandbox Code Playgroud)
我可以curl在shell上:
$ curl -I http://www.company.com/api/v1/companies/1
HTTP/1.1 200 OK
Cache-Control: private
Content-Length: 11055
Content-Type: application/javascript
Last-Modified: Thu, 18 Jun 2015 07:30:26 GMT
Accept-Ranges: bytes
ETag: "5e772a598a9d01:0"
P3P: policyref="/w3c/p3p.xml",CP="CAO DSP LAW CURa ADMa DEVa CUSi OUR LEG UNI"
Date: Fri, 19 Jun 2015 13:06:46 GMT
$
Run Code Online (Sandbox Code Playgroud)
我使用以下contentSecurityPolicy:
contentSecurityPolicy: {
'default-src': "'none'",
'script-src': "'self'",
'font-src': "'self'",
'connect-src': "'self' http://www.example.com", …Run Code Online (Sandbox Code Playgroud) 我想将html标记注入到不同平台中多个站点的div中.理想情况下,每个开发人员都可以在我的js中插入脚本标记.让我们假设每个应用程序都有bootstrap和jquery.
<script id="globalheaderapi" src="https://www.url.com/globalheader.js"></script>
Run Code Online (Sandbox Code Playgroud)
和html在应用程序上只会是这样的
<header id="globalHeader"></header>
Run Code Online (Sandbox Code Playgroud)
我想在标题中插入我的html标记.我还想让js插入到css源的链接.
问题是,应用程序只有jquery.
$( document ).ready(function() {
//insert link to header css
$('head').append('<link rel="stylesheet" href="globlalHeader.min.css" type="text/css" />');
//insert html in div
$( "#globalHeader" ).html( "<nav><ul><li><a href="link">Home</li><li><a href="link">About</li></ul></nav>" );
});
Run Code Online (Sandbox Code Playgroud)
更新
我尝试过$( "#globalHeader" ).load(...,如果js和应用程序在同一个域中,如果我在不同的域中尝试它我会得到crosssite错误
XMLHttpRequest cannot load http://url . No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.
Run Code Online (Sandbox Code Playgroud) 我正在开发一个应用程序,在该应用程序中我使用 package.json 发出“http”请求import 'package:http/http.dart' as http;。当我使用它时,此请求工作正常Android,iOS但在Fultter Web我遇到CORS Policy问题时。
代码
Future<Details> verification(String id) async {
final http.Response response = await http
.post(
'https://secure.iccrc-crcic.ca/search/do/lang/en',
headers: <String, String>{
'Content-Type': 'application/x-www-form-urlencoded',
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': 'POST,GET,DELETE,PUT,OPTIONS',
'Accept': '*/*'
},
body:
"form_fields=%20lang%3Den%26search_last_name%3D%26search_first_name%3D%26search_iccrc_number%3D$id%26search_membership_status%3D1%26search_company_name%3D%26search_agent%3D%26search_country%3D%26search_province%3D%26search_postal_code%3D%26search_city%3D%26search_street%3D&query=%20&letter=%20&start=%200",
)
.timeout(Duration(minutes: 1));
if (response.statusCode == 200) {
return verificationEmail(response.body);
} else {
throw Exception('Failed to create album.');
}
}
Run Code Online (Sandbox Code Playgroud)
错误
Access to XMLHttpRequest at 'https://secure.iccrc-crcic.ca/search/do/lang/en'
from origin 'https://immigration-101.web.app' has been blocked by CORS …Run Code Online (Sandbox Code Playgroud) 我在尝试使用 ExpressJS 重定向时遇到问题,我制作了一个登录系统来获取发布请求,如果用户存在,则页面应该重定向,但 Cors 却阻止了它。
这是请求:
router.post('/login', async (req, res) => {
try{
let usersData = await getFiles(__dirname + '/users.json');
let parsedUsers = JSON.parse(usersData);
let userChecker;
for(let i = 0; i < parsedUsers.length; i++){
if(parsedUsers[i].userName === req.body.userName){
userChecker = 1;
break;
}
}
if(!userChecker){
console.log(`${req.body.userName} Not exist`);}
else {
console.log(`${req.body.userName} Approved`);
res.redirect('/')
}
}
catch (err) {
if(err) throw err
};
})
Run Code Online (Sandbox Code Playgroud)
这是它在控制台发送的错误:
Access to fetch at 'http://localhost:3001/users/login' (redirected from 'http://localhost:4000/users/login') from origin 'null' has been blocked by CORS policy: …Run Code Online (Sandbox Code Playgroud) javascript ×5
cors ×4
reactjs ×3
csrf ×1
dart ×1
django ×1
django-csrf ×1
ember-data ×1
ember.js ×1
express ×1
fetch-api ×1
flutter ×1
flutter-web ×1
jquery ×1
next.js ×1
response ×1
security ×1
tornado ×1