2011-05-02 63 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

相关问题