我正在尝试使用不显眼的 Javascript 在现有链接上触发附加的 ajax 查询。
查询将进入服务器并进行处理,返回字符串“javascript template ok”进行测试。
但是,永远不会调用 ajax“成功”函数。到位,触发的是“错误”功能......
我查看了 Chrome 调试器,我可以看到从服务器返回的响应文本,但从来没有调用“成功”方法...... :-(
我的电话是
jQuery.ajax({
type: 'POST',
success: function(response) {
$("#details").html(response);
console.log(response);
},
error: function(){
alert("Error\nData could not be retrieve from the server");
},
url: '/treeview/show/1538.js',
cache: false,
});
(在此示例中,url 是硬编码的)。浏览器中的相同 Url 无需布局即可获得正确的数据 :-)
删除url中的“.js”返回带有布局的html模板,并且正确实现了“details”div的更新......
控制器是
respond_to do |format|
format.html # show.html.erb
format.js { render :inline => "JAVASCRIPT TEMPLATE !" }
end
谢谢
编辑 :
这是从 ajax 查询返回的对象(错误的第一个参数: function(jqXHR) ):
Object
abort: function ( statusText ) {
always: function () {
complete: function () {
done: function () {
error: function () {
fail: function () {
getAllResponseHeaders: function () {
getResponseHeader: function ( key ) {
overrideMimeType: function ( type ) {
pipe: function ( /* fnDone, fnFail, fnProgress */ ) {
progress: function () {
promise: function ( obj ) {
readyState: 4
responseText: "JAVASCRIPT TEMPLATE !"
setRequestHeader: function ( name, value ) {
state: function () {
status: 200
statusCode: function ( map ) {
statusText: "OK"
success: function () {
then: function ( /* fnDone, fnFail, fnProgress */ ) {
__proto__: Object
所以我得到了正确的回复文本??!! 那么错误可能在哪里?:-s