向具有不同域和基本身份验证的服务器发出 ajax POST 请求是不可能的
is making an ajax POST request to a server with a different domain and basic auth impossible?
我正在尝试向具有不同域的服务器发出POST请求,这需要基本身份验证。
我已经尝试了之前发送和与凭据的所有组合,但基本的身份验证标头从未在 OPTIONS 预检请求中发送。
$.ajax({
url: anotherdomain,
data: data,
cache: false,
contentType: false,
processData: false,
type: 'POST',
dataType:'json',
xhrFields: {
withCredentials: true
},
crossDomain: true,
beforeSend: function(xhr) {
xhr.setRequestHeader('Authorization', 'Basic *');
xhr.withCredentials = true;
}
我似乎可以让这个请求成功的唯一方法是将 dataType 设置为 'jsonp',或将请求 'type' 设置为 GET。
此问题的唯一解决方案是从另一个域服务器中删除 OPTIONS 请求的基本身份验证要求吗?
谢谢。
您还必须允许服务器上的标头:这是一个 php 示例(这是对所有源的请求开放的,我建议你只将其限制在生成 ajax 的站点):
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS');
header('Access-Control-Max-Age: 1000');
header('Access-Control-Allow-Headers: Content-Type, Authorization, X-Requested-With');
相关文章:
- 通过ajax将坐标传递到php服务器端,并在处理后检索到javascript
- 使用ajax的服务器端分页&jQuery
- 使用FormData上传AJAX图像;t在服务器端显示图像
- React路由器服务器端渲染和ajax获取数据
- 如何通过ajax将png图片从服务器发送到浏览器中显示
- 使用对服务器的Ajax调用验证表单字段—Learning Ajax
- 使用AJAX将日期从SQL服务器传递到jQuery日历
- 使用AJAX将文件上载到服务器
- 使用ajax上传的文件返回错误,但使用c#在asp.net的服务器端正常提交的文件
- 使用Ajax调用在服务器上实时更新页面
- 如何使用AJAX和php将多个文件上传到服务器
- 如何在服务器仍在处理以前的请求时对ajax请求进行排队
- AJAX错误状态代码500内部服务器错误
- 将服务器端数据传递给JavaScript——Scripplet或AJAX调用——这更好
- Ajax's的数据参数未发送到服务器
- Python本地服务器问题:通过ajax发布时,rfile被截断
- 将两个对象传递给服务器 AJAX
- 如何将文本输入保存为变量,然后提交到服务器(ajax 和 javascript)
- 安全性 - 将数据从第三方发送到我的服务器 Ajax php
- 将 JSON 和 HTTPRequest 发送到服务器 AJAX