-1

我正在为 jQuery 中似乎非常奇怪的行为而烦恼。

 define ['jquery', 'models/ConfigModel'], ($,  ConfigModel) ->
   class MyController
     initialize: () ->
       confData = $.getJSON('/config.json', (data) -> console.log data)

这工作得很好。它返回 config.json 的内容

   define ['jquery', 'models/ConfigModel'], ($,  ConfigModel) ->
     class MyController
       initialize: () ->
         confData = $.getJSON
           url: '/config.json' 
           success: (data) -> console.log data

这将返回 index.html 的内容,这可能是由于服务器的 .htaccess 文件所致。

   RewriteEngine On
   RewriteRule ^(js|css|media|api|pie|templates|config.json) - [L,NC]
   RewriteCond %{REQUEST_FILENAME} !index.html
   RewriteRule .* index.html [QSA,L]

我也尝试在 Chrome 控制台中使用 JS,并得到了相同的结果。

   //works well
   $.getJSON('/config.json', function(data) {console.log(data)}) 
   //index.html
   $.getJSON({url:'/config.json', success: function(data) {console.log(data)}}) 

由于我有一个解决方法,因此该解决方案对我来说不如任何人关于调试此类情况的方法的想法重要。

编辑:

    $.getJSON({url:'/config.json', success: function(data) {console.log(data)}})
    XHR finished loading: "http://site.dev/[object%20Object]]".

     $.getJSON('/config.json', function(data) {console.log(data)})
     XHR finished loading: "http://site.dev/config.json".
4

1 回答 1

1

这是 的足迹getJSON

jQuery.getJSON( url [, data ] [, success(data, textStatus, jqXHR) ] )

我从文档中复制了这个。您根本没有按照您想要的方式使用此功能。

$.ajax()如果要传递具有所有设置的对象,则应该使用。

于 2013-03-11T23:23:31.160 回答