如何使用post(不是get)强制ajax并在jquery选项卡中显示响应?

嗨,我有以下的HTML和脚本

   jQuery(function() { jQuery("#tabs").tabs({ /*beforeLoad: function(event, ui){ alert('loading'); }, load: function(event, ui){ alert('loaded'); }*/ ajaxOptions: { dataFilter: function(result){ var data = jQuery.parseJSON(result); alert(data.test_element); return data.test_element; } }, /*beforeLoad: function( event, ui ) { ui.jqXHR.error(function() { ui.panel.html( "Couldn't load this tab. We'll try to fix this as soon as possible. " + "If this wouldn't be a demo." ); }); }*/ }); });  

Proin elit arcu, rutrum commodo, vehicula tempus, commodo a, risus. Curabitur nec arcu. Donec sollicitudin mi sit amet mauris. Nam elementum quam ullamcorper ante. Etiam aliquet massa et lorem. Mauris dapibus lacus auctor risus. Aenean tempor ullamcorper leo. Vivamus sed magna quis ligula eleifend adipiscing. Duis orci. Aliquam sodales tortor vitae ipsum. Aliquam nulla. Duis aliquam molestie erat. Ut et mauris vel pede varius sollicitudin. Sed ut dolor nec orci tincidunt interdum. Phasellus ipsum. Nunc tristique tempus lectus.

从我的程序返回的ajax是

 {"test_element":"test"} 

我如何使用post强制jquery选项卡和上面的javascript无法获得相关选项卡中显示的响应(也警告无法工作)

—————更新————–

  beforeLoad: function (event, ui) { if (ui.ajaxSettings.url == 'https://stackoverflow.com/questions/25657120/how-to-force-ajax-using-post-not-get-and-display-the-response-in-jquery-tabs/productstab/ajax/index') { ui.ajaxSettings.type = 'post'; } ui.ajaxSettings.dataFilter = function (data, type) { var html = jQuery.parseJSON(data); //alert(data + 'abc'); alert(html.test_element); return html.test_element + ' modified'; } } 

我仍然无法在选项卡中显示它

———-更新第二————

 jQuery(function($){ $('#tabs').tabs({ beforeLoad: function( event, ui ) { console.log(ui.ajaxSettings); if(ui.ajaxSettings.url == 'https://stackoverflow.com/questions/25657120/how-to-force-ajax-using-post-not-get-and-display-the-response-in-jquery-tabs/productstab/ajax/index'){ ui.ajaxSettings.type = 'post'; } ui.ajaxSettings.dataFilter = function(data, type){ //alert(data); var temp = data; alert(temp); var data1=jQuery.parseJSON(temp); //alert('data' + data); if(typeof data1 =='object') { alert(data1.test_element + ' element'); //return data1; } else { alert(data + 'modified'); //return data + ' modified'; } //alert(data1); return data; } } }) }); 

———-在阿伦的帮助下最后修复———-

  jQuery(function($){ $('#tabs').tabs({ beforeLoad: function( event, ui ) { console.log(ui.ajaxSettings); if(ui.ajaxSettings.url == 'https://stackoverflow.com/questions/25657120/how-to-force-ajax-using-post-not-get-and-display-the-response-in-jquery-tabs/productstab/ajax/index'){ ui.ajaxSettings.type = 'post'; } ui.ajaxSettings.dataFilter = function(data, type){ var html = data, obj; try { obj = jQuery.parseJSON(data); html = obj.test_element; } catch (e) {} return html; } } }) }); 

您可以使用beforeLoad回调来执行此操作

 jQuery(function ($) { $("#tabs").tabs({ beforeLoad: function (event, ui) { if (ui.ajaxSettings.url == 'content2.html') { ui.ajaxSettings.type = 'post'; } ui.ajaxSettings.dataFilter = function (data, type) { return data + ' modified'; } } }); }); 

演示: Plunker