提交请求时出现意外的 URL 更改
unexpected url changes when post request done
我正在编写一个简单的Web服务,在Web UI(网址为"localhost:9001")上有一个按钮可以触发函数indexIt
,该按钮会引发POST请求,服务器会使用json响应。
<button type="submit" id="indexButton" class="btn btn-primary" onclick="indexIt()">Index</button>
相关代码为:
function displayResponse(msg) {
var shown = JSON.stringify(msg, null, 2);
$(hintTextSelector).text(shown);
}
function indexDoneHint(response) {
console.log(JSON.stringify(response));
displayResponse(response);
}
function getLOptions() {
return {
"stem": $("#cb-index-stem").is(":checked"),
"ignore": $("#cb-index-ignore").is(":checked"),
"swDict": $("#lb-index-stopwords").val()
}
}
function indexIt() {
var indexOptions = getLOptions();
var privateParam = {
"method": "POST",
"url": _getUrl("indexDoc"),
"data": JSON.stringify(indexOptions)
};
$.extend(privateParam, commonParam);
$.ajax(privateParam).done(indexDoneHint).error(onError);
}
问题是当我通过按下按钮触发请求时,url 会更改为"localhost:9001/?(尾随 /?
) 被添加。
奇怪的是,当我使用开发人员控制台并调用indexIt()
时,页面仍然是"localhost:9001"
如果您在表单中使用按钮<button>
,请单击它会自动提交表单。代替按钮标签使用输入标签,即 <input type="button" id="indexButton" class="btn btn-primary" onclick="indexIt()" value="Index It" />
或使用返回关键字
-
<button type="submit" id="indexButton" class="btn btn-primary" onclick="return indexIt()" >Index</button>
-
在你的JavaScript函数"indexIt()"中,最后使用"return false",这样它就会运行你的js代码并停止执行。
function indexIt() {
var indexOptions = getLOptions();
var privateParam = {
"method": "POST",
"url": _getUrl("indexDoc"),
"data": JSON.stringify(indexOptions)
};
$.extend(privateParam, commonParam);
$.ajax(privateParam).done(indexDoneHint).error(onError);
return false;
}
只需将按钮设置为简单的按钮而不是提交按钮,键入="按钮"
<button type="button" id="indexButton" class="btn btn-primary" onclick="indexIt()">Index</button>
或
<input type="button" id="indexButton" class="btn btn-primary" onclick="indexIt()">Index</button>
因为当您将按钮设置为提交时,它会将您的页面提交到表单标签中编写的操作。
相关文章:
- iFrame url更改时执行函数
- $http GET URL更改并查找错误的资源
- 用于自动将一种类型的URL更改为另一种类型
- 通过 JavaScript 捕获 URL 更改事件
- 如何在地址栏中的URL更改Firefox JPM时获得通知
- 在Twitch.tv上收听URL更改
- SEO友好的页面页面没有URL更改
- 对于多个视图,当URL更改时,我的子模板不会在Angular UI中加载
- 根据URL更改更改DOM元素类名
- 将 URL 更改为页面上单击的元素,而无需重新加载页面
- 当浏览器选项卡中的 url 更改时自动注销
- 提交请求时出现意外的 URL 更改
- 等待 Casper.js 中的 URL 更改
- 如何将URL更改为花式框内部URL
- 根据用于访问您的域的 URL 更改页面内容
- URL 更改事件 - JavaScript
- 在 url 更改时对 iframe 进行动画处理
- 如何在 Angular 中的 url 更改时仅重新加载一个控制器
- 选中并提交单选按钮上的 URL 更改
- 如何使用jquery(或javascript)检测没有哈希的url的url更改