从$.ajax for jquery中的url参数中删除附加url的方法
我正在使用cakephp,希望使用从$.ajax for jquery中的url参数中删除附加url的方法,jquery,ajax,cakephp,post,Jquery,Ajax,Cakephp,Post,我正在使用cakephp,希望使用jQuery.ajax发布到我的服务器。问题是jQuery的$。ajax附加了协议和主机名,但也包含了当前控制器,因此我无法更改正在粘贴的控制器 是否有方法更改$.ajax中的url:参数?这是我的示例邮政编码: $.ajax({ url: 'controller/action', type: 'post', data: $('#form_data').serialize(), dataType:
jQuery.ajax
发布到我的服务器。问题是jQuery的$。ajax
附加了协议和主机名,但也包含了当前控制器,因此我无法更改正在粘贴的控制器
是否有方法更改$.ajax
中的url:参数?这是我的示例邮政编码:
$.ajax({
url: 'controller/action',
type: 'post',
data: $('#form_data').serialize(),
dataType: 'json',
success: function(json) {
console.log(json);
}
});
只需在
$的URL部分中输入您想要发布的确切/更具体的URL即可。post
设置
$.ajax({
url: 'http://host/controller/action',
type: 'post',
data: $('#form_data').serialize(),
dataType: 'json',
success: function(json) {
console.log(json);
}
});
在cakePHP中,您可以执行以下操作:
$.ajax({
url: '<?php echo $this->webroot; ?>controller/action',
type: 'post',
data: $('#form_data').serialize(),
dataType: 'json',
success: function(json) {
console.log(json);
}
});
你的意思是这样的吗试试这个
$.ajax({
url: '/controller/action',
type: 'post',
data: $('#form_data').serialize(),
dataType: 'json',
success: function(json) {
console.log(json);
}
});
你看到区别了吗?如果你在URL前面加“/”(斜杠),它将被附加到你的域名上,如果没有,它将被附加到你的当前URL上。创建一个文件,让我们假设“site_constants.php”在app/Config文件夹中包含一些常量变量。在其中定义以下常量:
<?php
define('HTTP_HOST', "http://" . $_SERVER['HTTP_HOST'].'/');
if(HTTP_HOST == 'localhost' || HTTP_HOST == '127.0.0.1')
{
define('SITE_URL', HTTP_HOST.'app_folder_name/');
}
else
{
define('SITE_URL', HTTP_HOST);
}
将JS变量常量定义到主布局文件中:
<script type="text/javascript">
var SITE_URL = '<?php echo SITE_URL?>';
</script>
处理这项任务的过程可能看起来很长,但一旦完成,它将在许多方面对您有所帮助。
以下是优点:
你在找$.post还是$.ajax?在您的问题中,您编写了$.post,但是您的示例代码使用了$.ajax。您不能在外部变量中定义url并调用它吗<代码>变量url=http://foo/bar“然后是
$.post(url、数据、回调)
?让我快速尝试一下,是的,我的坏@kannix,谢谢你的纠正。如果js
代码不是内联的,也不是从外部.js
文件加载的,那该怎么办?好主意。我也试着这么做。谢谢@Arun
<?php
define('HTTP_HOST', "http://" . $_SERVER['HTTP_HOST'].'/');
if(HTTP_HOST == 'localhost' || HTTP_HOST == '127.0.0.1')
{
define('SITE_URL', HTTP_HOST.'app_folder_name/');
}
else
{
define('SITE_URL', HTTP_HOST);
}
require_once('site_constants.php');
<script type="text/javascript">
var SITE_URL = '<?php echo SITE_URL?>';
</script>
$.ajax({
url: SITE_URL+'controller/action',
type: 'post',
data: $('#form_data').serialize(),
dataType: 'json',
success: function(json) {
console.log(json);
}
});