$.getJSON在Knockout.js中的URL错误
$.getJSON wrong URL in Knockout.js
我正在使用Laravel 4 PHP MVC框架和Knockout.js作为一个简单的应用程序。
我已经建立了一个RESTful API,并想从客户端进行$.getJSON
请求,但get请求被发送到wrw URL。
Knockout没有执行GET
到http://mydomain.com/users/123Fdfsd02/reports
的操作,而是将请求发送到http://mydomain.com/users/reports
,这是错误的URL。
这是我的淘汰赛代码:
function ReportViewModel() {
var self = this;
self.report = ko.observable();
self.getAllReports = function(data) {
$.getJSON("reports", function(data) {
self.report(data);
});
}
self.getAllReports();
};
ko.applyBindings(new ReportViewModel());
我在这里错过了什么?我已经尝试将url设置为./reports
和reports
,但仍然没有成功。
谢谢你帮助一个新手!
在我的Laravel项目中,在其他可能需要它的脚本之前,我把它放在了部分头视图中:
<script>
var BASE_URL = "{{ URL::to('/') }}";
</script>
然后我可以组装AJAX调用,比如。。。
$.getJSON(BASE_URL+"api/content", params, function(response) {
//whatever
});
无论应用程序是在本地主机的子文件夹中运行,还是在暂存或生产环境中运行,这一切都会起作用。
也许只使用绝对路径而不是相对路径会更明智。
你能用变量构造路径/users/123Fdfsd02/reports
吗?或者这是不可能的?
哪个URL显示在浏览器的地址栏中?也许http://mydomain.com/users
?
Personaly,我会这样做:
使用"base"标记设置HTML。"base"标记将确保每个相对URL都以其"href"属性的值为前缀,因此AJAX对相对URL user/detail/1
的调用将转到该绝对URL->http://mydomain.com/user/detail/1
<!doctype html>
<html lang="en">
<head>
...
<base href="http://mydomain.com/">
...
然后,在AJAX调用中使用相对URL,基于"基本"标记中定义的根URL
function ReportViewModel() {
...
$.getJSON("users/123Fdfsd02/reports",
...
};
防弹解决方案是使用绝对URL。
这应该有效:
var rootUrl = "/users/"+ userToken +"/reports"
userToken可以通过以下方式找到:
s = document.location.href;
s = s.replace('http://mydomain.com/users/', '');
userToken= s.substring(0, s.indexOf('/'));
我希望它能有所帮助。
- 重定向javascript中的Url
- 如何从django中的url解析javascript字符串
- 如何从java中的URL读取JavaScript响应
- 如何重定向当前选项卡'Chrome扩展中的url
- 如何使用phonegap从android中的URL下载文件
- 是否可以添加<脚本>添加'_someTag'到iFrame中的URL
- Django中的URL检测和缩短
- 从Javascript中的URL获取参数
- css中的url用angular重写
- Url.Content中的Url不匹配
- 如何获取目录中的URL字符串
- 是否可以更改更改特定事件在地址栏或浏览器中的URL
- 如何在 javascript 中的 url 回调函数中传递参数
- SEO机器人是否总是遵循A标签的href属性中的URL,即使点击/点击被Javascript拦截
- 如何在地址栏中的URL更改Firefox JPM时获得通知
- 将注释中的URL解析为链接
- Javascript:我如何自动打开链接中的url链接
- 获取angularjs中的URL部分
- HTML-从javascript中的URL位置读取.txt文件
- 将函数本身设置为AJAX中的url