2010-12-23 54 views
1

我知道如何使用jQuery或XMLHttpRequest向JavaScript中的REST api發出HTTP請求。我現在想要做的是在沒有爲標題值設置屬性的情況下發出請求。一個HTTP request message包括:來自JavaScript的HTTP請求使用原始消息(包括頭文件)

  • 請求行,如GET /images/logo.png HTTP/1.1,其中請求從稱爲服務器
  • 接頭,如接受/images/logo.png資源-language:恩
  • 一個空行
  • 一個可選的消息體

的請求我的API應該看索姆就像這樣:

GET /myapi/myresource/1234 HTTP/1.1 
Host: localhost:51127 
Content-Type: application/x-www-form-urlencoded 
Accept: application/json, text/csv 
Authorization: Basic <base64 encoded credentials> 

我想打開一個連接到localhost:51127,發送上面的文本,並獲得響應。這是可能的JavaScript?

更新:我知道如何設置標題。 I 只是想以不同的方式做到這一點。 有很多方法可以「建立」0​​請求,包括標題併發送它。 我只是想手動建立它。

+0

請參閱[`jQuery.get`](http://api.jquery.com/jQuery.get/)。 – meagar 2010-12-23 17:44:47

+0

jQuery.get是我現在正在使用jQuery.ajax的快捷方式。這爲您指定了標題,可以使用屬性和回調來覆蓋。我想用上面的格式指定標題和內容。 – 2010-12-23 17:50:53

回答

2

Javascript中沒有套接字支持。您只能使用XMLHTTPRequest包裝或可選的包裝(如jQuery.ajax)來構建HTTP查詢。這是出於各種理由,主要是安全。

2

您可以獲取HmlHttpRequest對象的實例並使用setRequestHeader。

jQuery有一個beforeSend處理程序,您可以設置獲取實際的hxr對象。

$.ajax({ 
     beforeSend: function(xhr){ 
      xhr.setRequestHeader("name","value"); 
     } 
    ... 
    })