我使用Yii框架,我想从JS文件中调用控制器函数,
我在JS文件中的ajax代码:
$.ajax({
type: "POST",
url: "operator/checkDisabledDates",
data: {
id: 1
},
success: function(data) {
alert('success');
},
error: function(data) {
alert("Fail");
}
});
其中checkDisabledDates
是我的控制器方法名称,operator
是我的控制器名称。
我错误地形成了这样的网址,
www.example.com/operator/agent/id/4/operator/checkDisabledDates
我的ajax网址只是附加在现有网址的最后位置, 我尝试了不同的组合,如
url: "/operator/checkDisabledDates"
url: "../operator/checkDisabledDates"
url: "../checkDisabledDates"
没什么用的,
但是当我使用下面的语法时,它起作用了,
url: "../../checkDisabledDates"
无论如何没有像这样的硬编码点(。)???
答案 0 :(得分:1)
我建议不要使用相对路径来调用控制器。 尝试将您的域用作上下文
var domainName = 'yourSite.com'
url: domainName+"operator/checkDisabledDates"
答案 1 :(得分:1)
我正在使用我的项目并且它正在为我工作,请尝试这个 -
在JS
文件中定义全局变量,例如。 -
var url_path = document.location.origin+document.location.pathname;
现在你可以像这样使用
url: url_path+'?r=operator/checkDisabledDates'
或
url: url_path+'operator/checkDisabledDates'
答案 2 :(得分:0)
使用此:
data = {};
data.r = 'operator/checkDisabledDates';
data.id = 1;
$.ajax({
type: "POST",
url: "index.php",
data: data,
success: function(data) {
alert('success');
},
error: function(data) {
alert("Fail");
}
});
始终适合我。