1

我是 Phonegap 的初学者,在这里我在 Android Emulator 中执行此参考代码并在 phonegap 2.0 中工作以获得简单的输出。运行此代码后,Logcat 显示以下错误: xmlHTTPrequest cannot load http://api.careerbuilder.com/v1/jobsearch?DeveloperKey ? 访问控制不允许 origin null - 此处允许来源 html 代码:

<div data-role="page" id="page1">

<div data-role="header" data-theme="b">

<p><center>Career Builder</center></p>

</div>

<div data-role="content" data-theme="d">

<input type="text" id="t1" placeholder="Location....">

<input type="button" id="but" value="Search" onclick=show()><br>

<ul id="list" data-role="listview" data-theme="a" data-filter="true">




document.addEventListener("deviceready", onDeviceReady, false);

function onDeviceReady() {
$.support.cors = true;
$.mobile.allowCrossDomainPages = true;
}

function show() {
var val=document.getElementById("t1").value;

$.ajax({

type: "GET",

url: "http://api.careerbuilder.com/v1/jobsearch?&DeveloperKey= my api key",

contentType:"xml/application",

data:{

val:val,

},

dataType: "xml",

success: function(xml)

{

xmlParser(xml);

}

});

}

function xmlParser(xml) {

$(xml).find("JobSearchResult").each(function () {

var com=$(this).find("Company").text();

var job=$(this).find("JobTitle").text();

$("#list").append
('<ul><li>Company Name :' + com + '</li><li>Job Title :' + job + '</li><ul>');

$('#list').listview('refresh');

});

}
4

1 回答 1

0

这是由所有现代浏览器强制执行的同源策略引起的。阅读有关CORS 工作原理的更多详细信息。基本上问题是您的网页与careerbuilders.com URL 位于不同的域中,并且CORS 标头不是由careerbuilders.com 正确传输,或者没有被phonegap 正确解释。

于 2013-11-11T13:45:55.193 回答