连字符不允许jQuery AJAX调用正常工作
Hyphen not allowing jQuery AJAX call to work properly
问题:通过我的addData()
函数传递的参数中有一个连字符;认为"12345678 - 9"。每当传递的数据有一个连字符,我得到Ajax Fail!
警报框弹出在我的应用程序。然而,每当我硬编码的$_GET
变量是一个字符串或数字没有连字符,我的应用程序的这一部分工作。我已经把范围缩小到连字符可能导致这个错误。
HTML
<button id="add-analysis-button" onClick="addData( $( '#click-number' ).text() )">Add Data</button>
/jQuery Javascript/AJAX
function addData(a_ship) {
$.ajax({
type: 'GET',
url: 'models/add-data.php?oShip=' + a_ship,
mimeType: 'json',
success: function(data) {
alert( data );
},
error: function() {
alert('Ajax Fail!');
}
});
PHP (File: add-data.php)
<?php
echo $_GET['oShip'];
我尝试过的:我尝试过在addData()
函数中使用javascript的替换函数将连字符替换为HTML数字。例:a_ship = a_ship.replace('-', '-')
。这似乎允许代码部分工作,但随后去掉了连字符后面的数字,这使我陷入另一个问题。
问题:我如何通过连字符从jQuery的AJAX不引起错误?
修改如下:
mimeType: 'json',
:
contentType: 'json',
或者
删除mimeType将解决这个问题。
用此代码替换您的代码并回复结果(可编辑的提琴在这里:http://jsfiddle.net/caLu0kj9/)。注意,在ajax请求中添加了dataType
,并在HTML代码中删除了onclick
事件。
<div id="click-number">12345678-9</div>
<button id="add-analysis-button">Add Data</button>
JavaScript: $("#add-analysis-button").click(function(){
addData($( '#click-number').text());
});
function addData(a_ship) {
$.ajax({
type: 'GET',
url: 'models/add-data.php?oShip=' + encodeURIComponent(a_ship),
dataType: 'json',
beforeSend: function(jqXHR, settings) {
jqXHR.url = settings.url;
},
success: function(jqXHR, data) {
alert("SUCCESS! " + data + " " + jqXHR.url);
},
error: function(jqXHR) {
alert("FAIL! " + jqXHR.url);
}
});
}
相关文章:
- Javascript:selenium Web驱动程序isDisplayed()不工作
- jQuery UI自动完成突然停止工作
- AngularJS UI路由器不能像ng路由器那样工作
- HTML5音频加载和播放获胜'我不能在iPad上工作
- JavaScript打印功能使日历停止工作
- Javascript.getHours()工作不正常
- 为什么这在IE中的工作方式与在Firefox中不同
- 视频HTML没有'无法在Internet Explorer 11上工作
- 扩展移相器按钮类不工作
- Firebase迁移-简单的Firebase.set没有'不再工作了——旧的还是新的
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- 正在尝试使用if和else添加类,但无法正常工作
- Jquery FadeIn FadeOut 只工作一次
- Foreach无法在Typescript中工作
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- 为什么不是't窗口.恢复正常工作吗?(javascript/jquery)
- JS可以在Chrome中工作,但不能在Firefox中工作
- 最大高度转换不;不工作,工作缓慢
- Gulp-rev:不是第一次工作,而是在第一次工作之后工作
- JQuery - Ajax: encodeUriComponent不工作(EncodeUri工作)