XMLHttpRequest和jQuery AJAX方法之间的响应头区别(Response header difference between XMLHttpRequest and jQuery AJ

编程入门 行业动态 更新时间:2024-10-11 13:21:00
XMLHttpRequest和jQuery AJAX方法之间的响应头区别(Response header difference between XMLHttpRequest and jQuery AJAX method)

我的问题不重复。

码:

var data = {'userId': window.cookie.get('userId'), 'sessionId': window.cookie.get('sessionId')} $.post(window.DbUrl + '/test', data, function (e) { console.log(e); });

我尝试用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 ...

码:

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);

我尝试与XMLHttpRequest在同一个URL响应是:

Allow:POST Connection:keep-alive Content-Length:4 Content-Type:text/html; charset=utf-8

在nodejs express服务器中,缺少Access-Control-Allow-*标头。

但是,当使用XMLHttpRequest到php服务器的每一件事情都是好的。

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服务器是好的:

<?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

问题是什么? 为什么PHP服务器是好的两个nodojs不是,为什么jQuery在任何服务器上都可以?

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:

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:

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.

But when ajax with XMLHttpRequest to php server every thing is Ok.

nodejs server:

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 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?

最满意答案

我不知道原因,但是如果你想修复它,请使用cors包。 由于软件包具有快速请求触发功能,因此请在发送手册之前发送标题。

I don't know the reason but use the cors package if you want to fix it. Because the package has trigger on express request, send header before you send manual.

更多推荐

本文发布于:2023-08-08 01:10:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1466687.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:区别   方法   jQuery   AJAX   XMLHttpRequest

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!