出于某种原因,我无法在我的新类固醇项目中完成AJAX跨域调用。 Weinre不会在控制台中向他们展示任何JS错误。
我已经使用常规浏览器在Apache中测试了此代码,并且进行了调用并且身份验证甚至可以正常运行。但是在Ad-Hoc模式下没有任何事情发生。
onclick
甚至开火,因为我得到警报。我甚至在ajax调用之前得到警报,但是ajax根本不会发射。
var baseUrl = 'http://www.domain.com/form/apiv1/index.php/';
$(document).ready(function() {
$('#login').click(function () {
if($('#kairosid').val() <= '' || $('#kairosid').val() == '0') {
alert('Please enter an ID to continue');
return false;
} else {
alert('calling json');
$.ajax({
type: 'GET',
url: baseUrl+'phoneauth/'+$('#kairosid').val()+'?callback=?',
async: true,
dataType: 'jsonp',
jsonpCallback: 'processJSON',
crossDomain: true,
headers: {
"Authorization": "Basic " + btoa(lkey+':'+lhash)
},
success: function ( data ) {
alert('done');
if(data == 'null' || data <= '') {
alert('Sorry, there was a problem with the request');
} else {
alert('loading '+data);
hashes = data;
var fields = ["phoneNumbers", "name"];
navigator.contacts.find(fields, apiLoginSuc, apiLogError);
}
}
});
}
});
});
就像我说的,如果我把它移到Apache并在那里运行它运行得很好并调用API并完美登录。
在我的PHP文件中,我把它放在顶部以确保:
header("Access-Control-Allow-Origin: *");
Weinre没有任何表现:
但是,如果我从URL前面删除HTTP,当然它可以工作。使用HTTP它不起作用。这里给出了什么?
编辑: Weinre log:
2014-06-05T19:57:38.795Z类固醇:
DOMNotify.childNodeInserted([4,83,{ “ID”:116, “节点类型”:1, “nodeName的”: “SCRIPT”, “的localName”: “脚本”, “的nodeValue”:NULL, “childNodeCount”:0, “属性”:[ “异步”, “”, “SRC”, “http://www.domain.com/form/apiv1/index.php/phoneauth/7?callback=processJSON&_=1401998264894”]},空])