0

我实际上是在尝试对我项目中的团队进行动态管理。这意味着例如,用户有 3 个按钮。每个按钮从显示表单的控制器调用一个函数。

但是,当表单出现时,当我按下提交时,url 很奇怪。

function ajax_get(){

var uri_segment = "<?=$this->uri->segment(3);?>";

$('#editTeam').click(function (e) {
    e.preventDefault();

    $.ajax({
        type : "GET",
        async : false,
        url : "<?=base_url().'ajax/team/get_editTeam/';?>"+uri_segment,
        dataType : "html",
        success : function(data){
            window.setTimeout(function () {
                $('#divPage').html(data);
            }, 300);

        }
    });
    return false;
});

这个函数在一个div中显示一个视图,然后我有一个表单

function ajax_editTeam()
{
$('form').submit(function(e){
    e.preventDefault();

    $.ajax({
        type : "POST",
        async : false,
        url : "www.google.fr",
        data : $(this).serializeArray(),
        dataType : 'json',
        success : function(data)
        {

        }
    });


    return false;
});
 }

对于这个表单,我有另一个 ajax 调用来保存字段并更新团队信息。如您所见,我将 'www.google.fr' 写为 url,但它没有任何改变

当我提交表单时,我在 firebug 中有一个奇怪的 url。

这是来自 firebug 的控制台: GET http://fresh-league.com/ajax/team/get_editTeam/30 200 OK 164ms
POST http://fresh-league.com/ajax/team/editTeamget_editTeam 404 Not Found 354ms

你能告诉我为什么我有另一个请求的网址而不是 www.google.fr 吗?

谢谢马特的回答

4

2 回答 2

1

这是因为浏览器上的同源策略限制。

同源策略限制浏览器向域发出 ajax 请求,而不是下载源脚本的表单。

有多种方法可以克服这一点

  1. 使用jsonp
    如果请求的资源支持 jsonp,那么你可以使用它,jquery 已经内置了对 jsonp 的支持。要使用 jsonp,您需要传递请求参数callback=?并将数据类型设置为jsonp或使用getJSON来请求 json 资源。

  2. 使用CORS

于 2013-04-08T15:26:41.657 回答
0

你的问题有答案,

这是对的:url : "<?=base_url().'ajax/team/get_editTeam/';?>"+uri_segment

这不是:url : "www.google.fr"因为您没有从控制器调用任何函数,请尝试给它一个 url,就像第一个 ajax 调用一样。

于 2013-04-08T15:16:48.623 回答