选项请求始终失败( 400错误请求),尤其是在 MAC OSX和iOS 10 上的HTTPS环境中 SAFARI 仅。 Chrome和其他浏览器运行正常(200)。我们几乎尝试了所有我们所知道的解决方案,但似乎没有任何效果。以下是带有跨域选项标题的ajax调用:
$.ajax(
{
headers: {
Accept : "application/json",
'Content-Type': "application/json"
},
type : "POST",
url : userDataSource,
contentType: "application/json",
data : JSON.stringify(formData),
dataType : 'json',
xhrFields :{
withCredentials: true
},
crossDomain : true,
success : function(data){........}}).....
我们尝试对javascript进行以下修改:
我们在服务器端也进行了类似的更改,并进行了一些代理级别的更改,但没有任何帮助。它不是一个公共Web应用程序,而是它的内部组织网络。
对我们来说解决它非常重要,因为它会阻止交付。
请帮忙。
答案 0 :(得分:0)
这看起来像服务器问题,当在使用的服务器平台上没有信息时很难弄清楚。 您是否尝试调试抛出400 Bad Request的代码?日志文件中可能还有更多信息。 当你说这只是Safari和iOS中的一个问题时,它可能是由请求中不同的User-Agent引起的(只是一个猜测)。
与工作请求相比,您是否检查了请求中是否有其他HTTP标头不同(确保比较OPTIONS请求,而不是POST)。您可以尝试使用Fiddler或Postman将请求的某些变体缩小到特定原因。
我很抱歉没有明确答案,也许您可以提供有关服务器的更多信息。