【发布时间】:2013-02-21 11:46:00
【问题描述】:
我正在尝试使用不显眼的 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
【问题讨论】:
-
您是否尝试过传递
dataType: 'script'并创建js.erb模板而不是内联渲染? -
@Stephane:已经有很多答案似乎指向正确的方向 afaik。然而你对他们中的任何一个都没有反应?那我们可以怎样帮助你呢?请帮助我们为您提供帮助。
标签: javascript ruby-on-rails ajax