无法在实时服务器 ASP.NET Core MVC 5 上显示来自 getJson 调用的数据

Cannot Display Data from getJson Call on Live Server ASP.NET Core MVC 5

我的网站上有一个特别有问题的控制器方法。它应该根据产品 ID、产品属性(即长度)和产品属性值(即 1.5 毫米)获取商品的价格。我正在使用 getJson 请求来实现这一点。该方法在我的本地服务器中运行良好,但在实时服务器上时,它访问该方法,但不提供价格。该方法看起来像这样。

        [HttpGet]
        [ActionName("GetPriceFromSetAttributes")]
        public IActionResult GetPriceFromSetAttributes(int productId, string productAttributeName, string productAttributeValueName)
        {
            var price = _repository.GetProductPriceFromSetAttributes(productId, productAttributeName, productAttributeValueName);
            return new JsonResult(price);
        }

这是 getJson 请求。

                var controllerUrl = '@Url.Action("GetPriceFromSetAttributes", "Cart")';
                $.getJSON(controllerUrl, { productId: $("#productId").val(), productAttributeName: $(this).attr('id'), productAttributeValueName: $(this).val() }, function (data) {
                    if (data.attributePrice != null) {
                        $("#attributePrice").val("KES. " + data.attributePrice.toLocaleString() + "");
                        $("#attributePriceToPost").val("" + data.attributePrice + "");
                        $("#originalPriceAt").hide();
                        $("#attributePriceAt").show();
                    }
                    $('#addToCart').html('<i class="fas fa-cart-plus mr-2"></i> Add to Cart');
                    $('#addToCart').prop('disabled', false).removeClass('noHover');
                });

在使用以下代码启用 CORS 后,该网站最初引发了跨源异常,

            services.AddCors(options =>
            {
                options.AddPolicy("MyAllowSpecificOrigins",
                                  builder =>
                                  {
                                      builder.WithOrigins("https://localhost:44383",
                                                          "https://tendcorp.co.ke")
                                                          .AllowAnyHeader()
                                                          .AllowAnyMethod()
                                                          .AllowCredentials();
                                  });
            });
            
            
            

            app.UseCors("MyAllowSpecificOrigins");

没有异常,但问题依然存在。我什至尝试从我的开发环境连接到 SQL 数据库,但无济于事。

附上实时服务器和我的本地主机的屏幕截图。

谁有指点?我可能做错了什么?

getjson 不是您的最佳选择,因为它已转换为 ajax 后记,请直接尝试 jquery ajax

 var controllerUrl = '@Url.Action("GetPriceFromSetAttributes", "Cart")'
+ '?productId='+ $("#productId").val() 
+'&productAttributeName=' + $(this).attr('id')
+'&productAttributeValueName='+ $(this).val();

  $.ajax({
            type: 'GET',
            dataType: 'json',
            url: controllerUrl,
            success: function (data) {
             if (data.attributePrice != null) {
                .... your code
             }             
          }
  });

我使用了 Serge 的 ajax 函数(上面标记为答案)并修改了我自己的控制器以提供字符串而不是 JSON 对象,因为实时服务器不断发回对我的 JSON 请求的文本回复。

控制器现在看起来像这样:

        [HttpGet]
        [ActionName("GetPriceFromSetAttributes")]
        public IActionResult GetPriceFromSetAttributes(int productId, string productAttributeName, string productAttributeValueName)
        {
            var price = _repository.GetProductPriceFromSetAttributes(productId, productAttributeName, productAttributeValueName).AttributePrice.ToString();
            return Content(price);
        }

它获取所需数据的速度也比以前更快。