函数result.charAt不存在

时间:2013-01-10 18:03:01

标签: javascript asp.net

我是javascript的新手,我真的不明白我遇到的错误。

我正在开发一个MVC3网站,该网站必须监控嵌入式系统。

以下是正在运行的javascript代码:

function GetTemp() {
    var test = "gTe";
    $.ajax({
        url: '@Url.Action("../Carte/Get")',
        type: 'GET',
        data: {test: test},
        success: function (result) {
            if (result.charAt(4) == 'a') {
                $("#LumAct").text(result.substr(0, 4) + " %");
                alert('a');
            }
    ...

这是返回字符串

的c#动作
    public String Get(String test)
    {
        flag = TCPClient.SendData(test);
        if (flag == "1")
        {
            try
            {
                value = TCPClient.ReceiveData();
            }
            catch
            {
                value = "Erreur";
            }
        }
        else value = "Erreur";

        return value;
    }

我遇到的错误是萤火虫,它告诉我:

TypeError: result.charAt is not a function
        [Stopper sur une erreur]    
if (result.charAt(4) == 'a') {

那么,我还没理解什么?根据我的说法,我正在使用ajx函数将httpGet发送到控制器,控制器以字符串响应。在javascript中,我可以像我一样处理字符串。

要使用字符串对象,我还没有添加任何库。我应该这样做吗?我没有找到任何有关这方面的信息。

2 个答案:

答案 0 :(得分:2)

你可以试试这个:

if (String(result).charAt(4) == 'a') 

另外,如@Musa所述,您应该为AJAX调用添加dataType属性:

$.ajax({
    url: '@Url.Action("../Carte/Get")',
    type: 'GET',
    dataType: 'text',
    data: {test: test},
    success: function (result) {
        if (result.charAt(4) == 'a') {
            $("#LumAct").text(result.substr(0, 4) + " %");
            alert('a');
        }

答案 1 :(得分:1)

如果检查jQuery.ajax api page,您将看到第一个参数是格式化为dataType参数的对象。老实说,我console.log结果,看看它是什么样的。如果你不能charAt()那么结果可能不是一个字符串。