0

我正在建立一个类似 oauth 的流程,在该流程中,提出实际请求会被推迟,直到一些初步协商完成。

初步协商有效,但是当我尝试请求所需资源时,我得到以下行为:

  • django 服务器为协商中的每个步骤记录一个 POST 请求。
  • 角度客户端为协商中的每个步骤记录一个 OPTIONS 和一个 POST 请求。

到目前为止,一切都很好。

接下来,我收到资源的 OPTIONS 请求。这个请求在浏览器中停留在等待状态,而 $http 的请求函数执行error回调,状态为 0。

我从角度收到一条错误消息:加载资源失败。

这是我传递给 $http 的请求对象:

cache: false
data: null
headers: {
  Authorization: OAuth realm="all"oauth_consumer_key="21846675797"oauth_signature_method="PLAINTEXT"oauth_token="89676366323"oauth_timestamp="1376236699"oauth_nonce="dQBGqqTQf"oauth_signature="GET&localhost%3A16080%2Fkauth%2Ftest%2F&oauth_consumer_key%3D%2221846675797%22%26oauth_nonce%3D%22dQBGqqTQf%22%26oauth_signature_method%3D%22PLAINTEXT%22%26oauth_timestamp%3D%221376236699%22%26oauth_token%3D%2289676366323%22"
}
method: "GET"
params: null
url: "localhost:16080/kauth/test/"

我删除了所有标准标题,因为担心它们可能会干扰我的签名:

$http.defaults.headers.common = {};
$http.defaults.headers.get = {};
$http.defaults.headers.post = {};
$http.defaults.useXDomain = true;

django 服务器不记录此请求。

任何指针将不胜感激。

4

1 回答 1

0

我找到了答案...

在 url 的开头包含协议 (http://) 就可以了。

于 2013-08-11T16:57:54.297 回答