我正在尝试使用REST从服务器调用资源,Restful Service在另一台服务器上。 当我运行下面的脚本时,我得 XMLHttpRequest无法加载文件:/// C:/xampp/htdocs/Rest_Client/application/views/www.creadevz.com/Restful_Server/index.php/api/Example/users/ 。交叉源请求仅支持协议方案:http,数据,chrome,chrome-extension,https,chrome-extension-resource。
<script>
document.write('Started');
jQuery.ajax({
type: "GET",
url: "www.creadevz.com/Restful_Server/index.php/api/Example/users/",
dataType: "json",
crossDomain: true,
success: function(html){
document.write('success');
document.write(html);
}
});
</script>
我有两个问题:
1-为什么附加 file:/// c:/ xampp / htdocs / Rest_Client / application / views
2-如何超越跨域资源访问限制。
额外信息:
1-我正在使用CodeIgniter和Philip Sturgeon的REST服务器。
2-我遵循了Philip Sturgeon的教程并使用了随框架提供的Example api
3-我使用 hurl.it 来测试api,它工作正常。
我找到的解决方案:
1- CORS
2- JSONP
网上的大多数意见建议CORS优于JSONP,但我不确定如何以有效的方式实现它,因为 hurl.it 完美地称为api必须有一种方式他们已经过了没有CORS标头的跨域资源访问限制。
先谢谢你的帮助
编辑:
我没有提到这是为了将它与Phonegap一起使用
为了有效地使用CORS Headers,我在Rest_Controller.php的响应函数的开头添加了它;
答案 0 :(得分:2)
回答第一个问题 请更正为url,它应该有“http://”现在你的代码看起来像这样。
<script>
document.write('Started');
jQuery.ajax({
type: "GET",
url: "http://www.creadevz.com/Restful_Server/index.php/api/Example/users/",
dataType: "json",
crossDomain: true,
success: function(html){
document.write('success');
document.write(html);
}
});
</script>
现在不会附加追加文件:/// c:/ xampp / htdocs / Rest_Client / application / views
答案 1 :(得分:0)
很简单,如果你正在使用chrome,你可以安装这个plugin,它对我有用。我希望这对你有用。
祝你好运