问题描述
如何为XMLHttpRequest编写url,以便将数据发送到控制器。
我现在所拥有的是:
var data = `post=${post}`;
var xhr = new XMLHttpRequest;
xhr.open("POST","<?= Router::url(array('controller'=>'posts','action'=>'add')) ?>",true);
xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xhr.send(data);
我知道我可以做到:
xhr.open("POST","/cakePHP/posts/add/",true);
但是我要指定确切的控制器和操作,这样,即使我更改网站名称,例如,我也不会更改代码:
xhr.open("POST","/mywebsitename/posts/add/",true);
谢谢!
解决方法
没关系,我只是找到了替代解决方案。
我做到了:
var hostname = window.location.origin;
var data = `post=${post}`;
var xhr = new XMLHttpRequest;
xhr.open("POST",hostname + "/posts/add",true);
xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xhr.send(data);
,以便它将自动获取我网站的基本URL。