Tag: basic authentication

JQuery Ajax基本身份validation标头无法正常工作

我试图在JQuery中的服务器上发出一个简单的GET请求。 $.ajax({ headers: { “Authorization”: “Basic ” + btoa(“hello” + “:” + “world”) }, url: “http://hello.world?Id=1”, method: “GET”, success: function () { }, }).then(function () { }); 问题是,当发送请求时,身份validation标头未正确放入请求中: Host: hello.world User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: de,en-US;q=0.7,en;q=0.3 Accept-Encoding: gzip, deflate Access-Control-Request-Method: GET Access-Control-Request-Headers: authorization Origin: null Connection: keep-alive Cache-Control: […]

使用jQuery.ajax请求和jsonp进行基本身份validation

我有一些本地html / js文件,我想通过https调用一些远程服务器,并最终使用基本身份validation的请求。 我遇到两个问题。 首先,如果我没有为dataType指定’jsonp’,jQuery.ajax()请求将返回错误: 访问受限制的URI拒绝代码:1012 我的请求是否被视为跨域,因为我的主要工作文件存储在本地,但是从其他地方的服务器检索数据? 很好,我更新了呼叫,现在它看起来像: $.ajax({ url: myServerUrl, type: “GET”, dataType: “jsonp”, // considered a cross domain Ajax request if not specified username: myUsername, password: myPassword, success: function(result) { // success handling }, error: function(req, status, errThrown){ // error handling } }) 因为我需要使用基本身份validation,我传递用户名/密码,但如果我监视请求,我看不到它被设置,此外,服务器发送错误响应,因为它没有预期的信息。 另外,因为我有jsonp设置,所以不会调用beforeSend 。 如何使用基本身份validation为此请求传递凭据?

将curl cmd转换为jQuery $ .ajax()

我正在尝试使用jquery ajax进行api调用,我已经为api工作了,但我的ajax正在抛出HTTP 500 我有一个curl命令工作,看起来像这样: curl -u “username:password” -H “Content-Type: application/json” -H “Accept: application/json” -d ‘{“foo”:”bar”}’ http://www.example.com/api 我试过像这样的ajax,但它不起作用: $.ajax({ url: “http://www.example.com/api”, beforeSend: function(xhr) { xhr.setRequestHeader(“Authorization”, “Basic ” + btoa(“username:password”)); }, type: ‘POST’, dataType: ‘json’, contentType: ‘application/json’, data: {foo:”bar”}, success: function (data) { alert(JSON.stringify(data)); }, error: function(){ alert(“Cannot get data”); } }); 我错过了什么?

setRequestHeader在使用jQuery的JSONP中不起作用

我正在使用jQuery Mobile,jQuery 1.7.2和PhoneGap构建iPhone应用程序 尝试使用此代码从ASP.NET RESTful Web服务获取JSONP,我需要首先进行身份validation并获取令牌,然后再将其发回。 这是我的function: var setToken = function () { var serverToken = ”; $.support.cors = true; jQuery(‘body’).ajaxSend(function (evt, xhr) { xhr.setRequestHeader(“Authorization”, “Basic ” + $.base64.encode(username + “:” + password)); xhr.setRequestHeader(‘X-Accept’, ‘application/json’); }); $.getJSON(url + “?jsoncallback=?”, null, function (res) { console.log(res); serverToken = res.Token; }); $(‘body’).ajaxSend(function (evt, xhr, ajaxOptions) { xhr.setRequestHeader(‘NewToken’, serverToken); […]

为什么我的服务器忽略了ajax请求的身份validation标头?

从JavaScript我用过: xhr.setRequestHeader(“Authorization”, make_base_auth(username,password)); 但是,HTTP请求没有Authorization标头: OPTIONS /restService/index?_=1362589672203 HTTP/1.1 Host: myappinheroku.herokuapp.com User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:19.0) Gecko/20100101 Firefox/19.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: es-MX,es-ES;q=0.8,es-AR;q=0.7,es;q=0.5,en-US;q=0.3,en;q=0.2 Accept-Encoding: gzip, deflate Origin: http://127.0.0.1:8081 Access-Control-Request-Method: GET Access-Control-Request-Headers: authorization,content-type Connection: keep-alive 似乎完全忽略了身份validation。 怎么了? 我们如何为CORS启用身份validation? 这是服务器对上述请求的响应: HTTP/1.1 401 Full authentication is required to access this resource Access-Control-Allow-Credentials: true Access-Control-Allow-Headers: origin, authorization, accept, content-type, x-requested- with […]

使用HTTP基本身份validation的JQuery Ajax调用

我有一个基于REST的服务器,我试图使用JQuery进行通信。 XML和JSON都可用作响应格式,因此我使用的是JSON。 连接都是SSL,因此HTTP基本身份validation是我们选择的授权方法,我们对其他前端没有任何问题(原始Javascript,Silverlight等…) 现在我试图将一些东西与JQuery放在一起,并使用HTTP基本身份validation遇到无穷无尽的问题。 我已经仔细研究了之前的许多问题,其中大部分都有解决方案似乎没有实际工作或将整个问题归咎于跨源访问,我已经在基本的Javascript测试中克服了这些问题。 响应始终将Request Access-Control-Allow-Origin设置为请求中提供的Origin头,这可以在我的测试的响应中看到。 在基本的javascript中,这个完整的调用非常简单: req.open(‘GET’, ‘https://researchdev-vm:8111/card’, true, ‘test’, ‘testpassword’); JQuery尝试这是相当标准的: $.ajax({ username: ‘test’, password: ‘testpassword’, url: ‘https://researchdev-vm:8111/card’, type: ‘GET’, dataType: ‘json’, crossDomain: true, /*data: { username: ‘test’, password: ‘testpassword’ },*/ beforeSend: function(xhr){ xhr.setRequestHeader(“Authorization”, //”Basic ” + encodeBase64(username + “:” + password)); “Basic AAAAAAAAAAAAAAAAAAA=”); }, sucess: function(result) { out(‘done’); } }); 实际上似乎提供身份validation的唯一方法是在beforeSend()函数中直接插入Base64编码数据。 […]