【发布时间】:2013-05-03 21:37:19
【问题描述】:
我有一个带有 webtrends 提取 API 的工作 javascript/jQuery REST 应用程序,但 IE 除外。
我正在通过 SSL 发送身份验证 - https://[domainname]\[username]:[password]@ws.webtrends.com/v3/Reporting/profiles/10609/Keymetrics/?start_period=current_day-1&end_period=current_day&period_type =agg&format=json
当我查看开发人员工具 (F12) > 网络选项卡下的内部时,Internet Explorer 将反斜杠 ('\') 更改为正斜杠 ('/'),这导致浏览器查找带有域名的值。
所有其他浏览器都不会更改反斜杠。
$.ajaxSetup({
crossDomain: true,
async: false,
contentType: "application/jsonp",
dataType: "jsonp",
type: "POST",
cache: false,
beforeSend: function(xhr) {
xhr.overrideMimeType("application/jsonp; charset=UTF-8");
},
headers: {
"Authorization": mBaseSixtyFourVar
},
url: mXferObj.mUrl
});
$.ajax({
success: function(mInfo){
mRecvObj = mInfo;
alert(mRecvObj.data[0].measures.NewVisitors+"");
},
error: function (xmlHttpRequest, textStatus, errorThrown) {
alert("xmlHttpRequest.readyState: "+xmlHttpRequest.readyState+", textStatus: "+textStatus+", errorThrown: "+errorThrown+", mXferObj.mUrl: "+mXferObj.mUrl);
}
});
我尝试了以下方法:
将其插入 ajaxsetup
data: "{'domain':'domainname','username':'blabla','password':'blabla'}",
使用 PHP,我尝试过使用 curl,但除了 bool(false) 没有返回任何内容:
我尝试了 file_get_contents(),但收到了打开流错误。
我在 FireFox、Opera、Safari、Chrome 中都有这个功能 - 为什么 IE 总是保持完美?
任何帮助将不胜感激,并提前致谢
根据要求,这是我尝试过的 curL 代码之一:
if (!function_exists('curl_init')){
die('CURL is not installed!');
}
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $Url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);
var_dump $output;
我已经尝试了以下选项:
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt(CURLOPT_USERPWD, '[username]:[password]')
我尝试了很多不同的东西,这是最后一个
【问题讨论】:
-
你能展示你用 PHP 和 curl 尝试这个的代码吗?
-
更新代码以反映请求的 curL 代码
标签: javascript internet-explorer rest webtrends