Javascript 在HTTP请求中包含应导致域更改的标头字段
我有一个API,它根据头字段对请求进行身份验证,然后返回一个HTML页面 必须以某种方式请求此API,域将从Javascript 在HTTP请求中包含应导致域更改的标头字段,javascript,html,rest,http,api-design,Javascript,Html,Rest,Http,Api Design,我有一个API,它根据头字段对请求进行身份验证,然后返回一个HTML页面 必须以某种方式请求此API,域将从domain1.com更改为domain2.com(就像单击超文本一样) 我无法使用链接,因为我需要添加标题字段。 不能使用ajax,因为它不会将控件从domain1.com更改为domain2.com 像这样的事情根本没有意义 $.ajax({ // Use ajax to authenticate ... success : function(path){ // Lo
domain1.com
更改为domain2.com
(就像单击超文本一样)
我无法使用链接
,因为我需要添加标题字段。
不能使用ajax
,因为它不会将控件从domain1.com
更改为domain2.com
像这样的事情根本没有意义
$.ajax({
// Use ajax to authenticate
...
success : function(path){
// Load the path for domain change
location.assign(path);
// Even this request should have a header field
},
...
})
我需要在一个请求中同时具备这两种功能(更改域和标头使用情况)——如果可能,或者至少在两个请求中
有什么想法吗?为了发送HTTP请求,并在发送成功时发送带有凭证的标头和“更改域”,您可以将JSON响应与
302
代码和位置一起使用,这只是一种约定,不会触发浏览器行为
答复的一个例子是:
HTTP response code: 200 OK
HTTP response body:
{
status: 302,
location: 'domain2.com/result'
}
Ajax代码如下所示:
$.ajax({
// Use ajax to authenticate, with credential in HTTP header
...
success: function(result){
if (result.status === 302) {
window.location = result.location;
}
},
...
})
将使用2个HTTP请求。一个用于Ajax,另一个用于重定向。你说的“域将改变”是什么意思?那句话毫无意义。在哪里换?你只是在寻找重定向吗?这和AJAX有什么关系?你在找302重定向吗?@Brad当我们点击somewebsite.com
,URL
将更改为somewebsite.com-这就是我所说的域更改。我需要ajax来设置标题字段。@shaochuancs 302没有帮助。。。因为它服务于来自不同URL的请求,但不会将浏览器窗口的URL(要清除)更改为重定向。我说的对吗?URL将更改。。。你是说地址栏上的URL?不,302将更改该URL。你应该试试看。这里的重定向不会改变窗口的URL。它只在重定向的URL上为我的请求提供服务。因此,我可以从重定向的URL获取HTML并将其插入我的页面。但是,我想转到重定向页面。我该怎么做?我不能使用没有标题的普通location.assign()。@samkirubaharan很抱歉我犯了一个错误。我对另一种情况感到困惑。答案已经更新。请检查。你在哪里可以这样处理?。对我来说,浏览器会自动重定向。我只能处理那个重定向呼叫的响应,而不能处理这个初始呼叫。@samkirubaharan请注意HTTP响应代码是200
,而不是302
。我已经更新了我的答案。现在,问题是新的窗口。location
将没有标题字段。我的请求需要标题字段。我在代码中明确提到了这一点。