我正在为 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".