簡體   English   中英

如何使用Javascript從URL獲取HTTP標頭(內容類型)

[英]How to get HTTP header (Content-Type) from URL with Javascript

下午好! 這是我想要達到的目標。

我有一個輸入,允許用戶輸入URL(主要用於圖像),但它也可以是其他類型的文件。 我正在尋找一種方法來驗證url是否存在並獲取mime類型。

這是我的JavaScript測試的jsfiddle

我找到了使用PHP和AJAX以及類似功能的方法:

PHP:

function get_url_content_type( $url ) {

    $header = get_headers( $url, 1 );

    if ( isset( $header['Content-Type'] ) ) {

        return $header['Content-Type'];
    }
}

我不確定這是正確的方法,有人有更好的主意嗎?

非常感謝!

如果您未在$.ajax()調用中指定type ,則jQuery已經根據內容類型轉換了響應(請檢查此URL以獲取詳細信息)。

因此,您所要做的就是檢查生成的響應的類型,以推斷出已發送的Content-Type:

$.get("myPage.html", { }, function(data) {
  if(typeof(data) === "string") {
    //html
  } else {
    //JSON
  }
});

在這種情況下,它將無法正常工作,因為Google在其托管圖片上明確禁用了跨域請求。 如果您在啟用Firebug的情況下運行測試,則會收到以下消息:

跨域請求被阻止:“同源起源”策略禁止讀取https://www.google.com/images/srpr/logo11w.png上的遠程資源。 可以通過將資源移到同一域或啟用CORS來解決此問題。

但是,啟用CORS需要在服務器端進行一些我不認為Google願意做的工作。

編輯:

如果要生成某些文件的客戶端預覽,請嘗試使用以下方法:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM