2011-03-27 25 views
0

我有一段JavaScript,可能会从具有不同URL的各种页面执行。该代码是在这种情况下正常工作(这里的关键是URL参数,什么东西都不会被改变):jQuery .ajax()url参数没有连接字符串?

$.ajax({ 
      type: "POST", 
      url: "./ajax/getPageTitle", 
      data: "pageID="+$("#pageToEdit").val(), 
      success: function(pageName){ 
       $("#updatedPageName").val(pageName); 
      }, 
      error: function(req,error){ 
       if(error === 'error'){error = req.statusText;} 
       alert("There was an error: " + error); 
      } 
     }); 

当我尝试修改URL参数是这样的:

$.ajax({ 
      type: "POST", 
      url: BASE_URL+"ajax/getPageTitle", 
      data: "pageID="+$("#pageToEdit").val(), 
      success: function(pageName){ 
       $("#updatedPageName").val(pageName); 
      }, 
      error: function(req,error){ 
       if(error === 'error'){error = req.statusText;} 
       alert("There was an error: " + error); 
      } 
     }); 

其中BASE_URL是一个常量,它会导致错误。看起来这个请求甚至没有被发送(当我尝试时,在萤火虫控制台中没有404错误)并且错误信息只是说“错误”。

第一个正常工作时,它正好在url参数有意义的页面上。任何想法为什么会发生这种情况以及解决方案可能是什么?

在此先感谢。

+3

尝试增加'的console.log(BASE_URL +“AJAX/getPageTitle”)' – SLaks 2011-03-27 19:49:41

+1

我敢打赌'BASE_URL'缺少尾随斜线 – 2011-03-27 19:51:34

+0

这不是一个跨域请求是什么呢? – 2011-03-27 19:59:39

回答

-1

我已解决该问题。问题是由BASE_URL中的域名引起的。该值在BASE_URL变量中用作“http://www.mydomain.com/base/url/”。一旦我放弃了“http://www.mydomain.com”,它就起作用了。所以我的BASE_URL变成了“/ base/url /”。