初次用angular寫(xiě)項(xiàng)目较木,遇到很多問(wèn)題侵状,這里記錄一下牺勾。因?yàn)槭蔷毩?xí)正罢,所以自己在機(jī)器上面復(fù)制了一個(gè)java項(xiàng)目,用里面寫(xiě)好的接口驻民,訪(fǎng)問(wèn)地址是127.0.0.1:8080
新建的angular項(xiàng)目的訪(fǎng)問(wèn)地址是localhost:4200翻具,所以這里就出現(xiàn)了跨域問(wèn)題。
剛開(kāi)始接觸angular 不知道用angular項(xiàng)目里面的http如何進(jìn)行跨域回还,所以就用了ajax的jsonp裆泳, 查了些資料終于把原有的接口改成了jsonp的格式,但是卻有遇到另一個(gè)問(wèn)題柠硕,jsonp不能統(tǒng)統(tǒng)不執(zhí)行9ず獭! 因?yàn)樾枰祷財(cái)?shù)據(jù)后修改變量蝗柔,所以ajax的jsonp必須是同步修改闻葵,差了很多資料來(lái)實(shí)現(xiàn)jsonp的同步問(wèn)題,最后也沒(méi)有解決癣丧,實(shí)在沒(méi)辦法又只能回到angualr自帶的http身上笙隙,開(kāi)始查詢(xún)他的跨域方式(還真有),下面分享給大家:
1坎缭、首先需要再項(xiàng)目的跟目錄新建一個(gè)proxy.config.json文件竟痰,內(nèi)容為:
{
"/":{
"target":"http://127.0.0.1:8080" //這里是你的接口所在的位置
}
}
2、修改package.json文件中的scripts選項(xiàng)中的starts
"start": "ng serve --proxy-config proxy.config.json",
3掏呼、用 ng serve --proxy-config proxy.config.json 重啟項(xiàng)目(必須)
4坏快、然后組件中就可以直接用接口了,就跟用json是一樣樣的
this.http
.post(url,val)
.map(res => res.json()).subscribe(data=>{
if (data) {
this.title=data.msg;
}
})