Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 使用HTTP基本身份验证的跨源请求服务_Jquery_Authentication_Cross Domain - Fatal编程技术网

Jquery 使用HTTP基本身份验证的跨源请求服务

Jquery 使用HTTP基本身份验证的跨源请求服务,jquery,authentication,cross-domain,Jquery,Authentication,Cross Domain,如何向使用HTTP基本身份验证的web服务发出跨源请求 我的客户机是在jQuery中开发的,我的RESTful/JSON web服务已被修改,因此返回“跨源”标题 客户端代码: $.ajax({ url: "http://localhost:3000/applications", // external service async: false, beforeSend: function (req) { req.setRequestHeader("Auth

如何向使用HTTP基本身份验证的web服务发出跨源请求

我的客户机是在jQuery中开发的,我的RESTful/JSON web服务已被修改,因此返回“跨源”标题

客户端代码:

$.ajax({
    url: "http://localhost:3000/applications", // external service
    async: false,
    beforeSend: function (req) {
        req.setRequestHeader("Authorization", "Basic "+ base64_value)
    },
    success: function (applications) { $.each(applications, function(i, app) {
        list.push(app)
    })}
})
客户端代码同时触发选项和GET请求(在Chrome中)。选项请求以401失败

GET请求应该使用哪些标头,选项请求应该使用哪些标头?以及GET和选项应使用哪些服务器响应头


我使用cURL和完全相同的授权头向服务发出了请求,这起到了作用(即与JavaScript代码中的用户名/密码相同)。所以我想这与headers和OPTIONS方法有关。

我不知道这是可能的,但在阅读了它之后,你实际上可以这样做。代码中的bug来自您在beforeSend()中定义的头值

标题名是正确的,但以下是您必须如何构造值(您将需要Base64编码器,如Base64.js)

var base64=base64.encode(用户名+“:”+密码)


然后您可以在编写jQuery块时使用它。

尝试使用:-键入:“GET”或键入:“POST”添加类型:“GET”没有帮助。您尝试过使用吗?url在我的浏览器中工作,因此授权头是正确的,但不会在选项请求中发送。更改了代码,但运气不佳。我使用cURL使用相同的授权头发出了一个测试请求,这很有效,所以我猜问题与OPTIONS请求有关。我在OPTIONS请求中看不到任何授权头。