Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.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$。Get无法正常工作_Javascript_Jquery - Fatal编程技术网

Javascript jQuery$。Get无法正常工作

Javascript jQuery$。Get无法正常工作,javascript,jquery,Javascript,Jquery,我在$上遇到了一个问题。获取我以前从未遇到过的,并且似乎无法修复它。调用以下函数时: function getDefinition (word) { var toget = "http://www.stands4.com/services/v1/defs.aspx?tokenid=TOKEN&word=" + word; jQuery.support.cors = true; $.get(toget, function (data) { if(data.indexOf("<

我在$上遇到了一个问题。获取我以前从未遇到过的,并且似乎无法修复它。调用以下函数时:

function getDefinition (word) {
var toget = "http://www.stands4.com/services/v1/defs.aspx?tokenid=TOKEN&word=" + word;
jQuery.support.cors = true;
$.get(toget, function (data) {
    if(data.indexOf("<definition>") !== -1)
    {
        var definition = data.split("<definition>")[1].split("</definition>")[0];
        return definition;
    }
    else
    {
        return false;
    }
});
线路。我试图提醒(数据),但同样的事情发生了。我正在使用jquery1.6.1

任何帮助都将不胜感激,
Matthew

如果您使用的是旧版本的IE,则可能不支持indexOf:


如果您使用的是旧版本的IE,则可能不支持indexOf:


要做的第一件事是在调试器中的
.indexOf()
调用之前设置一个断点,并检查
数据
变量,查看它是否符合您的预期,以及它是否具有该方法。因为我们不知道这些数据是什么,所以我们很难说,但显然IE在这方面有困难

.indexOf()
可以是字符串或数组上的方法。阵列版本相对较新,一些较旧的浏览器(或落后于时代的浏览器)还不支持它。如果
data
是一个数组,那么这可能就是问题所在。如果是这种情况,则可以通过手动搜索数组来替换
.indexOf()
,或者为
.indexOf()
添加ES5垫片。mdn上有Array.indexOf()的垫片实现

看起来您还试图从
$.get()
调用的成功处理程序返回数据。那不行。成功函数由ajax引擎的内部调用。将数据返回到它不起任何作用-数据只会被删除


通过异步ajax调用(默认情况下,
$.get()
),您不能从suucess处理程序或
.get()
调用返回数据。数据仅在稍后发生的成功处理程序中可用。相反,您必须将使用该数据的任何代码放入成功处理程序或从成功处理程序调用的函数调用中。这就是异步ajax调用的工作方式。您可以使用它们进行传统的顺序编程。

首先要做的是在调试器中的
.indexOf()
调用之前设置一个断点,并检查
数据
变量,查看它是否符合您的期望,以及它是否具有该方法。因为我们不知道这些数据是什么,所以我们很难说,但显然IE在这方面有困难

.indexOf()
可以是字符串或数组上的方法。阵列版本相对较新,一些较旧的浏览器(或落后于时代的浏览器)还不支持它。如果
data
是一个数组,那么这可能就是问题所在。如果是这种情况,则可以通过手动搜索数组来替换
.indexOf()
,或者为
.indexOf()
添加ES5垫片。mdn上有Array.indexOf()的垫片实现

看起来您还试图从
$.get()
调用的成功处理程序返回数据。那不行。成功函数由ajax引擎的内部调用。将数据返回到它不起任何作用-数据只会被删除


通过异步ajax调用(默认情况下,
$.get()
),您不能从suucess处理程序或
.get()
调用返回数据。数据仅在稍后发生的成功处理程序中可用。相反,您必须将使用该数据的任何代码放入成功处理程序或从成功处理程序调用的函数调用中。这就是异步ajax调用的工作方式。你可以用它们进行传统的顺序编程。

数据到底返回到了什么地方,你是否试过调试这个JS来观察它,它更像是一个数组数据或其他输出的
警报(数据);返回作为该函数的顶行应该告诉您它是什么。我的猜测是
undefined
数据到底返回到了什么地方,你试过调试这个JS来观察它吗,它更像是一个数组数据或其他输出
警报(数据)的东西;返回作为该函数的顶行应该告诉您它是什么。我的猜测是
undefined
@Baz1nga-我也添加了关于.indexOf()问题的信息。但是,一旦他通过了,其余的代码也会因为另一个问题而无法工作。即使我注释掉了所有的if/else代码,只是添加了一个警报(数据),问题仍然存在。但我发现这有点令人惊讶,因为我以前一直这样使用$.get()。原来问题是一半是异步性,一半是以XML的形式返回,因此jQuery决定以某种奇怪的数组返回它:)只需添加jQuery.ajaxSetup({async:false});在$.get之前,jQuery.ajaxSetup({async:true});在$.get之后,在请求的末尾添加了一个额外的参数(,“html”),修复了异步性问题,并按照我的要求返回了XMLit@Baz1nga-我还添加了关于.indexOf()问题的信息。但是,一旦他通过了,其余的代码也会因为另一个问题而无法工作。即使我注释掉了所有的if/else代码,只是添加了一个警报(数据),问题仍然存在。但我发现这有点令人惊讶,因为我以前一直这样使用$.get()。原来问题是一半是异步性,一半是以XML的形式返回,因此jQuery决定以某种奇怪的数组返回它:)只需添加jQuery.ajaxSetup({async:false});在$.get之前,jQuery.ajaxSetup({async:true});在$.get之后,在请求的末尾添加一个额外的参数(,“html”),修复了异步性问题,并返回了我想要的XML
jQuery.support.cors = true;