0

Apache Web 服务器允许 XSS/CORs,我可以使用查询字符串参数成功地进行调用。

我被告知的 RESTful 服务使用 OAuth。

Fiddler 通过 Composer 调用 RESTful Web 服务很简单,并返回有效的 JSON 数据。我设置了一个 Authorization 标头,但是在 Fiddler Composer 中发送的请求与在 Ajax 中设置标头时看起来完全不同。

我尝试过使用和不使用 Accept 和 Access-Control-Allow-Origin 标头。

这是 Fiddler 在 Composer 中执行请求后的请求头。

GET {/trailing server URL} HTTP/1.1
Cookies / Login
    Authorization: Bearer xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Transport
    Host: {server URL}

这是我的 Ajax 请求

$(function () {
    var token = "Bearer xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx";

    $.ajax({
        url: url,
        dataType: "json",
        headers: {
            "Access-Control-Allow-Origin": "*", Accept: "application/json", Authorization: token
        }
        //,
        //beforeSend: function (jqXHR) {
        //jqXHR.setRequestHeader("Access-Control-Allow-Origin", "*");
        //jqXHR.setRequestHeader("Accept", "application/json");
        //jqXHR.setRequestHeader("Authorization", token);
        //}
    })
        .success(function (data) {
            console.log("success");
        })
        .fail(function (jqxhr, textStatus, error) {
            console.log("Error - textStatus = " + textStatus + " , error = " + error);
        });
});

这是通过 Fiddler 从我的 Ajax 浏览器请求中捕获的 HTTP 请求标头

OPTIONS {trailing server URL} HTTP/1.1
Client
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Encoding: gzip, deflate
    Accept-Language: en-US,en;q=0.5
    User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:20.0) Gecko/20100101 Firefox/20.0
Cookies / Login
    DNT: 1
Miscellaneous
    Access-Control-Request-Headers: access-control-allow-origin,authorization
    Access-Control-Request-Method: GET
    Origin: {local machine URL}
Transport
    Connection: keep-alive
    Host: {server URL}

为什么 AJAX 请求标头显示“OPTIONS”而不是像 Fiddler Composer 标头那样显示“GET”?

为什么 Fiddler Composer 标头在 Cookies / Login 部分下显示 Authorization: Bearer xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx 值?

我听说我不应该将令牌保留在 JavaScript 代码中,因为它可以在浏览器中查看(实际上,令牌不会被硬编码,而是作为变量传递)。我将如何传递令牌并确保其安全?

4

0 回答 0