根据带有凭据的请求,Firefox只会发送凭据以及跨域帖子
invocation.withCredentials = "true";
设置...但似乎jQuery的Ajax API没有为此提供任何机制.
有没有我错过的东西?还有其他方法可以做到吗?
是否可以在jQuery或javascript中发送curl请求?
像这样的东西:
curl \
-H 'Authorization: Bearer 6Q************' \
'https://api.wit.ai/message?v=20140826&q='
Run Code Online (Sandbox Code Playgroud)
所以,在提交表单的PHP中,如下所示:
$header = array('Authorization: Bearer 6Q************');
$ch = curl_init("https://api.wit.ai/message?q=".urlEncode($_GET['input']));
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$response = curl_exec($ch);
curl_close($ch);
Run Code Online (Sandbox Code Playgroud)
我正在尝试做的是执行这个curl请求,返回json,然后我打算用jQuery的$.get()函数解析它.
我正在为一个自制API的消费者工作,并且在设置Authorization标头时遇到了严重的困难.我正在使用JQuery来处理Ajax请求,但'beforeSend'根本不起作用(使用fiddler来检查请求)
这是我的beforeSend代码:
$.ajax({
type: "GET",
url: url+"/Projects",
contentType: "application/json; charset=utf-8",
beforeSend: function (req) {
req.setRequestHeader("Authorization", AuthBuilder(username, password));
},
success: function (result) {
alert("success");
},
error: function (xhr, ajaxOptions, thrownError) {
alert("fail");
}
});
Run Code Online (Sandbox Code Playgroud)
那么如果失败你会怎么做?回到发送ajax请求的旧方式......这也不起作用......
这是我的常规代码:
function GET(address, callback, error) {
Request = getXMLHttpObject();
Request.open("GET", url + address, true);
var base64 = Base64.encode(username + ":" + password);
alert(base64);
Request.setRequestHeader("Authorization", "Basic " + base64);
Request.send();
Request.onreadystatechange = function () {
//alert(Request.readyState+" code "+Request.status);
if (Request.readyState == …Run Code Online (Sandbox Code Playgroud)