欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

vue image 跨域

呂致盈2年前9瀏覽0評論

圖片資源跨域問題是前端工程中常見的一個問題,為了改善這個問題,Vue提供了一個處理圖片資源跨域問題的方案。在前端頁面中,如果要通過img標簽加載外部域名的圖片資源時,如果該圖片資源的服務器沒有做跨域處理,那么就會引發跨域問題。如何解決這個問題呢?下面是一些解決方案。

1. 跨域處理:可以在圖片資源服務器上增加跨域處理,即在response header中增加Access-Control-Allow-Origin頭。在開發階段中,通常會要求服務端開發人員加上這個頭,但是對于其他網站的圖片資源,這種解決方案是不可行的。

2. 代理跨域:使用代理服務器來代理加載外部圖片資源,可以避免跨域問題。但是代理服務器對于大量的請求會有性能瓶頸,同時,如果代理服務器出問題了,會影響整個前端的使用。

3. JSONP:由于JSONP是繞過跨域限制的一種方法,因此也可以用JSONP解決圖片資源跨域問題。通過創建script標簽來請求圖片資源的URL,然后在response中返回該腳本標簽的回調內容,加載圖片資源的頁面就可以通過該回調方法獲取需要的圖片資源了。但是,由于JSONP只能發送GET請求,因此無法實現POST請求。

4. 使用nginx反向代理:Nginx是一種高性能的Web服務器,可以通過nginx反向代理實現圖片資源的跨域請求。對于非常大的應用,同時需要處理很多請求,使用Nginx的反向代理可以顯著提高性能。

Vue提供的圖片資源跨域解決方案是使用CORS。通過向response header中增加Access-Control-Allow-Origin、Access-Control-Allow-Credentials等頭來實現跨域請求。對于Vue,我們需要在webpack的配置文件中增加一個圖片資源loader,并設置img標簽的crossOrigin屬性,如下:

{
test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
loader: 'url-loader',
options: {
limit: 10000,
name: utils.assetsPath('img/[name].[hash:7].[ext]'),
crossOrigin: 'anonymous' 
}
}

crossOrigin: 'anonymous'表示將img標簽的crossOrigin屬性設置為anonymous,從而表明加載的圖片是跨域請求的。如果在Vue中還需要發送其他類型的跨域請求,可以使用Vue-resource或Axios等插件實現。在Vue-resource中,可以通過代碼來設置跨域請求的方式:

Vue.http.options.xhr = {withCredentials: true}

以上就是Vue中處理圖片資源跨域的幾種方案,根據實際情況選擇合適的方案即可。