Ошибка в вызове веб-метода $ Ajax ASP.NET [async] - PullRequest
0 голосов
/ 28 октября 2018

Я работаю над асинхронным веб-методом (файл asmx), и мне нужно вызывать этот метод через метод jjery ajax, однако я сталкиваюсь с множеством проблем, потому что метод использует также Entity Framework для запуска некоторых других вещей.

Вот JavaScript:

function SubmitStripeForm() {
        // event.preventDefault();
        stripe.createToken(card).then(function (result) {
            if (result.error) {
                // Inform the user if there was an error.
                var errorElement = document.getElementById('card-errors');
                errorElement.textContent = result.error.message;
            } else {
                // Send the token to your server.
                // stripeTokenHandler(result.token);
                console.log();
                var myToken = result.token.id;
                $.ajax({
                    type: "POST",
                    url: "http://localhost:54355/Account/API/Stripe.asmx/MyStripePayment",
                    crossDomain: true,
                    async: false,
                    data: '{Tok: "' + myToken + '" }',
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function (response) {
                        if (response.d) {
                            console.log("Good");
                        }
                        else {
                            console.log("Bad");
                        }
                    },
                    failure: function (response) {
                        console.log("HORRIBLE");
                    }
                });
            }
        });

Вот веб-метод в asp.net c #:

[WebMethod(EnableSession = true)]
    public async void MyStripePayment(string Tok)
    {   
        string MyToken = Tok;
        using (var context = new CompanyEntities())
        {
            var collection = (from p in context.COMPANY where p.Id == Company_Id select p);
            foreach (var item in collection)
            {
                // Validation of the object
                BillingManagement.Michael Maik = new BillingManagement.Michael();
                Maik.name = "Michael";
                Maik.id = "114060502";
                Maik.number = "83290910";


                #region Send Information To Stripe
                CancellationToken Token = new CancellationToken();
                string Url = "http://localhost:5000/testing/give-your-data";
                using (var client = new HttpClient())
                using (var request = new HttpRequestMessage(HttpMethod.Post, Url))
                {
                    var json = JsonConvert.SerializeObject(Maik);
                    using (var stringContent = new StringContent(json, Encoding.UTF8, "application/json"))
                    {
                        request.Content = stringContent;

                        using (var response = await client
                            .SendAsync(request, HttpCompletionOption.ResponseHeadersRead, Token)
                            .ConfigureAwait(false))
                        {
                            response.EnsureSuccessStatusCode();
                            string resString = await response.Content.ReadAsStringAsync();
                            JObject jObject = JObject.Parse(resString);
                            string message = (string)jObject["message"];
                        }
                    }
                }
                #endregion

            }
        }

, и отображается эта ошибка:

POST http://localhost:54355/Account/API/Stripe.asmx/MyStripePayment 500 (Internal Server Error)

1 Ответ

0 голосов
/ 28 октября 2018

вы пытались использовать Try/Catch, чтобы получить больше информации об ошибке?очевидно, что это что-то внутреннее, лучше используйте это так и попробуйте еще раз, чтобы увидеть, что это за ошибка.

try
{
    // Code
}
catch (Exception ex)
{
   console.writeLine(ex);         
}

ИЛИ

Вы вставили вмешательство в улов, чтобы иметь возможность видеть влокальные переменные значения «Ex» или сохраните ошибку где-нибудь, чтобы прочитать ее позже.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...