[英]Response header difference between XMLHttpRequest and jQuery AJAX method
Dears my problem is not duplicate. 亲爱的我的问题不是重复的。
code: 码:
var data = {'userId': window.cookie.get('userId'),
'sessionId': window.cookie.get('sessionId')}
$.post(window.DbUrl + '/test', data, function (e) {
console.log(e);
});
I try to send ajax with jquery post and response is: 我尝试用jQuery post发送ajax,响应为:
Access-Control-Allow-Credentials:true
Access-Control-Allow-Headers:Origin, Content-Type, X-Auth-Token, Authorization
Access-Control-Allow-Methods:GET, POST, PATCH, PUT, DELETE, OPTIONS
Access-Control-Allow-Origin:https://localhost:8080
Connection:keep-alive
Content-Length:1011
...
code: 码:
var formdata = new FormData();
formdata.append('sessionId', window.cookie.get('sessionId'));
formdata.append('userId', window.cookie.get('userId'));
var ajax = new XMLHttpRequest();
ajax.upload.addEventListener("progress", selff.myProgressHandler, false);
ajax.addEventListener("load", myCompleteHandler, false);
ajax.addEventListener("error", myErrorHandler, false);
ajax.addEventListener("abort", myAbortHandler, false);
ajax.open("POST", window.DbUrl + '/test',true);
ajax.send(formdata);
I try with XMLHttpRequest in same URL response is: 我尝试在相同的URL响应中使用XMLHttpRequest是:
Allow:POST
Connection:keep-alive
Content-Length:4
Content-Type:text/html; charset=utf-8
In the nodejs express server, missing Access-Control-Allow-*
headers. 在nodejs express服务器中,缺少
Access-Control-Allow-*
标头。
But when ajax with XMLHttpRequest to php server every thing is Ok. 但是,当使用XMLHttpRequest将ajax发送到php服务器时,一切都很好。
nodejs server: nodejs服务器:
app.post('/test', function (req, res) {
res.setHeader('Access-Control-Allow-Origin', 'https://localhost:8080');
res.setHeader('Access-Control-Allow-Credentials', 'true');
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, PATCH, PUT, DELETE, OPTIONS');
res.setHeader('Access-Control-Allow-Headers', 'Origin, Content-Type, X-Auth-Token, Authorization');
res.end('welcome');
});
php server is ok: php服务器还可以:
<?php
header('Access-Control-Allow-Origin: https://localhost:8080');
header('Access-Control-Allow-Credentials: true');
header('Access-Control-Allow-Methods: GET, POST, PATCH, PUT, DELETE, OPTIONS');
header('Access-Control-Allow-Headers: Origin, Content-Type, X-Auth-Token, Authorization');
?>wellcome
What is the problem? 问题是什么? why php server is ok both nodojs is not, why jquery ok in any server?
为什么php服务器可以正常使用,两个nodojs都不可以,为什么jquery在任何服务器上都可以?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.