我不能发布到谷歌?

时间:2012-10-03 08:41:53

标签: javascript html

以下是小程序的代码,您可以在其中放置关键字,选择搜索引擎,然后按"搜索"按钮进行搜索。但谷歌不会让我去POST。我还能做什么?

编辑:Yahoo和Bing工作正常。

ERROR

405. That’s an error.

The request method POST is inappropriate for the URL 
/search?q=computer. That’s all we know. 

HTML

<form name="search" action="" method="Post" onSubmit="redirect()">
<input type="text" name="keyword"><br />
Google<input type="radio" name="ch" checked>
Yahoo!<input type="radio" name="ch">
Bing<input type="radio" name="ch"><br />
<input type="submit" value="Search">
</form>

的Javascript

<script type="text/javascript">
var searchengine=[
"http://google.com/search?q=",
"http://search.yahoo.com/search?p=",
"http://bing.com/search?q="
];

function redirect()
{
    var radioButtons = document.getElementsByName("ch");
    for (var x = 0; x < radioButtons.length; x++) {
        if (radioButtons[x].checked)
        {
            document.search.action = searchengine[x] + document.search.keyword.value;
        }
    }
}
</script>

2 个答案:

答案 0 :(得分:4)

  

但谷歌不要让我接受POST。我还能做什么?

在表单中使用GET而不是POST,或者只是将相关网址指定给window.location

以下是后者的一个例子。其他一些变化:

  • 添加了一些label s。
  • 更改了您选择的单选按钮与searchengine的匹配方式,使其更加强大/可维护。
  • 更改了搜索表单的名称。由于这会被转储到window对象上,我会避免像“搜索”这样简单的单词。
  • 对关键字进行了正确编码(您必须对URI参数进行编码)。

Live copy | Live source

HTML:

<form name="searchForm" action="" method="GET" onSubmit="return doSearch()">
<input type="text" name="keyword">
  <br>
  <label>Google<input type="radio" name="ch" value="google" checked></label>
  <label>Yahoo!<input type="radio" name="ch" value="yahoo"></label>
  <label>Bing<input type="radio" name="ch" value="bing"></label>
  <br>
  <input type="submit" value="Search">
</form>

JavaScript的:

var searchengine = {
  "google": "http://google.com/search?q=",
  "yahoo": "http://search.yahoo.com/search?p=",
  "bing": "http://bing.com/search?q="
};
function doSearch() {
  var frm, index, cb;

  frm = document.searchForm;
  if (frm && frm.ch) {
    if (frm.ch) {
      for (index = 0; index < frm.ch.length; ++index) {
        cb = frm.ch[index];
        if (cb.checked) {
          window.location = searchengine[cb.value] +
            encodeURIComponent(frm.keyword.value);
        }
      }
    }
  }

  return false; // Cancels form submission
}

答案 1 :(得分:0)

"http:google.com/search?q=",格式不正确..

尝试"http://google.com/search?q="