Вызов ASMX из jQuery

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
    <shape>
        <solid android:color="#ff0000" />
    </shape>
</item>

<item android:right="2dp">
    <shape>
        <solid android:color="@android:color/white" />
    </shape>
</item>
</layer-list>

или используйте отступы:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
    <shape>
        <solid android:color="#ff0000" />
        <padding android:right="1dp"/>
    </shape>
</item>

<item>
    <shape>
        <solid android:color="@android:color/white" />
    </shape>
</item>
</layer-list>

или:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
    <shape>
        <solid android:color="#ffffff"/>
    </shape>
</item>
<item android:gravity="right">
    <shape>
        <size android:width="1dp"/>
        <solid android:color="#ff0000"/>
    </shape>
</item>
</layer-list>

или:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item
    android:bottom="-2dp"
    android:left="-2dp"
    android:top="-2dp">
    <shape>
        <solid android:color="@android:color/white" />
        <stroke
            android:width="1dp"
            android:color="#ff0000" />
    </shape>
</item>
</layer-list>
18
задан Peter Mortensen 13 March 2011 в 08:09
поделиться

4 ответа

Особо выделяется то, что у вас есть UseHttpGet = true , но в коде jQuery вы используете POST.

Также вот тестовая страница, которую я создал для вызова страницы ASMX.

[WebMethod]
public Catalog[] GetCatalog()
{
    Catalog[] catalog = new Catalog[1];
    Catalog cat = new Catalog();
    cat.Author = "Jim";
    cat.BookName ="His Book";
    catalog.SetValue(cat, 0);
    return catalog;
}

<script type="text/javascript">
    $(document).ready(function() {
    $.ajax({
            type: "POST",
            url: "default.asmx/GetCatalog",
            cache: false,
            contentType: "application/json; charset=utf-8",
            data: "{}",
            dataType: "json",
            success: handleHtml,
            error: ajaxFailed
        });
    });

    function handleHtml(data, status) {
        for (var count in data.d) {
            alert(data.d[count].Author);
            alert(data.d[count].BookName);
        }
    }

    function ajaxFailed(xmlRequest) {
        alert(xmlRequest.status + ' \n\r ' + 
              xmlRequest.statusText + '\n\r' + 
              xmlRequest.responseText);
    }
</script>
27
ответ дан 30 November 2019 в 07:08
поделиться

Убедитесь, что вы указали Json в качестве формата ответа, если это то, что вам нужно, и избавьтесь от UseHttpGet из-за функций безопасности :

[WebMethod]
[ScriptMethod(ResponseFormat=ResponseFormat.Json)]
public string GetSurvey() {
    return "Question: Who is Snoopy?";
}
6
ответ дан 30 November 2019 в 07:08
поделиться

Вот пример вызова jQuery метода страницы в aspx, но он будет похож на страницу asmx.

$.ajax(
    {
        type: "POST",
        url: "NDQA.aspx/ValidateRoleName",
        data: '{"roleName":"' + $('[id$=RoleNameTextBox]').val() + '"}',
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: ValidateSuccess,
        error: ValidateError

    });
2
ответ дан 30 November 2019 в 07:08
поделиться

I would also suggest removing UseHttpGet as Jim Scott suggested.

You can add the following to your options and check the objXMLHttpRequest to see a more detailed error response.

error: function(objXMLHttpRequest, textStatus, errorThrown) {
 debugger;               
}
1
ответ дан 30 November 2019 в 07:08
поделиться
Другие вопросы по тегам:

Похожие вопросы: