Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 连字符不允许jQuery AJAX调用正常工作_Javascript_Php_Jquery_Ajax_Get - Fatal编程技术网

Javascript 连字符不允许jQuery AJAX调用正常工作

Javascript 连字符不允许jQuery AJAX调用正常工作,javascript,php,jquery,ajax,get,Javascript,Php,Jquery,Ajax,Get,问题:通过myaddData()函数传递的参数中有连字符;想想“12345678-9”。每当传递的数据有一个连字符时,我就会得到Ajax失败警报框在我的应用程序上弹出。但是,每当我将$\u GET变量硬编码为不带连字符的字符串或数字时,我的应用程序的这一部分就可以工作。我已经把范围缩小到可能是连字符导致了这个错误。请参阅下面的代码 HTML PHP(文件:adddata.PHP) 更改此选项: mimeType: 'json', 为此: contentType: 'json', -或-

问题:通过my
addData()
函数传递的参数中有连字符;想想“12345678-9”。每当传递的数据有一个连字符时,我就会得到
Ajax失败警报框在我的应用程序上弹出。但是,每当我将
$\u GET
变量硬编码为不带连字符的字符串或数字时,我的应用程序的这一部分就可以工作。我已经把范围缩小到可能是连字符导致了这个错误。请参阅下面的代码


HTML


PHP(文件:adddata.PHP)


更改此选项:

mimeType: 'json',
为此:

contentType: 'json',
-或-


完全删除mimeType将解决此问题。

用此代码替换您的代码,并用结果回复(此处的可编辑fiddle:)。注意在ajax请求中添加了
dataType
,并在HTML代码中删除了
onclick
事件

HTML:


问题可能出在返回的JSON中。调用失败时是什么样子的?请尝试:
encodeURIComponent
调用失败时,我会收到一个警告框,上面写着“Ajax失败!”@aCarella不,我是说实际的HTTP响应是什么样子的?@CodeGodie“-”字符不必是URI编码的。感谢您的响应。这也不起作用,但我从这篇文章中得到了一些想法。我在看到你的回应之前就解决了这个问题,但尝试你的代码也很有效。将此标记为正确答案,并编辑您的回答,以包含对我也有效的内容。
<?php
echo $_GET['oShip'];
mimeType: 'json',
contentType: 'json',
<div id="click-number">12345678-9</div>
<button id="add-analysis-button">Add Data</button>
$("#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);
        }
    });
}