0

我是 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') {

那么,我有什么不明白的?据我说,我正在使用一个将 httpGet 发送到控制器的 ajx 函数,控制器以字符串响应。在 javascript 中,我可以像以前一样处理字符串。

要使用字符串对象,我没有添加任何库。我应该这样做吗?我还没有找到任何信息说明这一点。

4

2 回答 2

2

你可以试试这个:

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

此外,正如@Musa 所述,您应该dataType向 AJAX 调用添加一个属性:

$.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');
        }
于 2013-01-10T18:06:26.767 回答
1

If you check the jQuery.ajax api page you'll see that the first argument is an Object formatted to the dataType parameter. Honestly I'd console.log the result and see what it looks like. If you can't charAt() then the result is probably is not a string.

于 2013-01-10T18:09:50.767 回答