/*$.ajax({
type:"post",
url:path+'ws/wisdomclass/getBaseDataInfo?'+wisdomKey,
dataType:"jsonp",
success:function(json){
that.$Loading.finish();
that.isClassroomreview=json.ws_classroomreview;
}
});*/
$.getJSON(path+'ws/wisdomclass/getBaseDataInfo?callback='+wisdomKey,{id:'111'}, function(json, textStatus) {
console.log(json)
that.$Loading.finish();
that.isClassroomreview=json.ws_classroomreview;
});
最開始使用的getJSON
方法向后臺(tái)請(qǐng)求接口,之前沒有wisdomKey
這個(gè)參數(shù),傳參的時(shí)候一般都在url后面以這樣的格式傳參{id:'1111'}
,一切正常,但是后期需要在url后面添加wisdomKey
這個(gè)參數(shù)我發(fā)現(xiàn)getJSON
就不好用了,但是使用ajax
以上述格式書寫卻可以正常請(qǐng)求的數(shù)據(jù),請(qǐng)問這是為什么呢?
PS:
(1)getJSON URL后面添加?callback=
可以實(shí)現(xiàn)跨域請(qǐng)求
(2)項(xiàng)目開始之前就跟后端溝通好了,所以不存在后端不支持的情況
(3)wisdomKey的值是sys_auto_authenticate=true&sys_token=20171114115229565011837222411089
(4)使用getJSON請(qǐng)求控制臺(tái)的報(bào)錯(cuò)信息
我這兩天剛用了一下這個(gè)jq的jsonp,jsonp是用于get請(qǐng)求的,我看你是post請(qǐng)求, 其實(shí)直接參數(shù)中用data: {test: 111}
來傳參數(shù)就好了,正常已經(jīng)能請(qǐng)求成功,如果有解析失敗的情況,可能是后端不支持jsonp,后端返回格式應(yīng)為 jsonp({ret: true})
多說一句:?問號(hào)后面的參數(shù)一般用于get
請(qǐng)求,除非你有特殊用途,post請(qǐng)求需要用data的方式傳參,而且post
請(qǐng)求據(jù)我了解不支持jsonp
看了一下getJSON的源碼
//getJSON
function (url, data, callback) {
return jQuery.get(url, data, callback, "json");//這里,強(qiáng)制了JSON,沒分用getJSON來調(diào)用JSONP
}
//get
function (url, data, callback, type) {
// shift arguments if data argument was omitted
if (jQuery.isFunction(data)) {
type = type || callback;
callback = data;
data = undefined;
}
return jQuery.ajax({
type: method,
url: url,
data: data,
success: callback,
dataType: type
});
}
分析了一下,getJSON 在調(diào)用get的時(shí)候,第四個(gè)參數(shù)強(qiáng)制了'json',所以沒有辦法用getJSON來調(diào)用JSONP的,直接用 $.ajax吧
====更新分割線,原來是我誤會(huì)樓主的意思了
jquery 的$.ajax 要害死多少人啊,
再說一次,簡單的把 dataType:"jsonp", 改成這樣是行不通的,
JSONP 和 JSON完全是兩回事,
你把dataType改成 jsonp 也得要后端支持返回JSONP才行,不是簡單的改個(gè)參數(shù)就可以了
我現(xiàn)在有點(diǎn)理解為什么 axios 不支持JSONP了
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
北大青鳥中博軟件學(xué)院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學(xué)院和江蘇省首批服務(wù)外包人才培訓(xùn)基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團(tuán)創(chuàng)建于1999年,經(jīng)過二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術(shù)與教育服務(wù)機(jī)構(gòu),發(fā)展為教育服務(wù)業(yè)的綜合性企業(yè)集團(tuán),成為集合面授教學(xué)培訓(xùn)、網(wǎng)
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國成功上市,融資1
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。