0

私は JavaScript の初心者で、発生しているエラーがよくわかりません。

組み込みシステムを監視する必要がある MVC3 Web サイトに取り組んでいます。

実行中の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;
    }

私が持っているエラーはfirebugにあります。

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') 

dataTypeまた、@Musa で述べたように、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

jQuery.ajax api ページを確認すると、最初の引数がパラメータにフォーマットされたオブジェクトであることがわかりdataTypeます。正直なところconsole.log、結果を見て、それがどのように見えるかを確認します。できないcharAt()場合、結果はおそらく文字列ではありません。

于 2013-01-10T18:09:50.767 に答える