2011-05-02 55 views
3

oHi,如何在使用HTMLString加載的UIWebView中提交表單:baseURL:?

我正在顯示一個包含帶有一些輸入文本字段和提交按鈕的表單的html頁面。

  • 如果我使用顯示頁面loadRequest:一切工作正常。
  • 如果我使用顯示相同的頁面loadHTMLString:baseURL:提交按鈕不再工作。

這是應該要調用的ADRESS是:

http://..../lire.php?id=33570#bloc_commentaire

如果我登錄它試圖達到我得到的地址:

applewebdata:// BF6F3D92-9F36 -40CA-A3EB-BCD3F14852B6#bloc_commentaire

你有什麼想法我應該怎麼做才能發佈一個使用loadHTMLString靜態加載的表單:baseURL:?

感謝, 文森特

+0

你指定什麼一個基本URL請求? – magma 2011-05-02 11:55:45

回答

7

出現該問題,因爲您的Web視圖不知道是不是因爲HTML是從一個字符串,而不是一個特定的Web服務器上加載到哪裏發佈的數據。

請確保您在您的通話正確設置baseURL

[webView loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL] 

詳情:

當web視圖發現在html相對URL,它與基本URL加入它形成可用於提交或點擊的絕對網址。例如:

鑑於http://www.test.com/foo/作爲baseURL和相對URL標記艾克<a href="bar/hello.php">click me</a>

當鏈接用戶點擊,視圖將爲http://www.test.com/foo/bar/hello.php

+0

謝謝你是這個問題,事實是這個baseUrl並沒有在UIWebView參考中真正解釋,我從來沒有真正理解它,請你簡要解釋它是什麼? – vdaubry 2011-05-02 12:30:05

+1

@vdaybry:假設瀏覽器從URL(如http://www.foo.com/test.html)加載HTML

。當用戶提交該表單時,瀏覽器會將表單數據字段發送到加載了html(http://www.foo.com)的服務器,並且這是baseURL。在你的情況下,你從一個字符串加載html,所以瀏覽器不知道它來自哪裏,因此無法知道將它發送到哪裏。這同樣適用於標籤。從硬盤加載純html時會遇到同樣的問題。另請參閱[](http://www.w3schools.com/TAGS/tag_base.asp)標記。 – 2011-05-02 12:37:31

+0

所以,我應該使用baseURL如果我從字符串加載簡單的HTML – 2012-11-14 13:24:09

相關問題