从JQuery调用RESTFUL服务

时间:2015-09-18 12:07:02

标签: javascript jquery codeigniter cordova rest

我正在尝试使用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的响应函数的开头添加了它;

2 个答案:

答案 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,它对我有用。我希望这对你有用。

祝你好运