ajax 相关问题

AJAX(异步JavaScript和XML)是一种通过客户端和服务器之间的异步数据交换来创建无缝交互式网站的技术。 AJAX有助于与服务器进行通信或部分页面更新,而无需传统的页面刷新。

从控制器检索 Ajax 数据

嗨,我已在 Codeigniter 控制器中调用了数据库值,并计算了数据库值并将其存储在一个新变量中。那么我怎样才能同时获得数据库值和新变量呢?

回答 1 投票 0

拦截XMLHttpRequest并修改responseText

我正在尝试构建一个脚本,该脚本将充当本机 XMLHttpRequest 对象的代理/包装器,使我能够拦截它,修改responseText并返回到原始的onreadystatec...

回答 5 投票 0

ajax完成后执行——不访问ajax函数?

我需要在ajax函数完成后执行JS函数(在WordPress中过滤帖子)。但是,ajax 过滤工具是由 WordPress 插件创建的,我无法编辑。我怎样才能检测到...

回答 1 投票 0

为什么在 ASP.NET Core 应用程序中使用 Ajax 时不出现验证消息

我在 ASP.NET Core 应用程序中使用 Ajax,但是当我提交表单时,输入的验证消息不会与无效输入一起出现。 当我停止使用 AJAX 时,验证消息...

回答 1 投票 0

在 XHR 中使用 multipart/form-data 作为 Content-Type 时收到“400 Bad Request”

我有一个发送一些数据的 AJAX 请求。数据遵循多部分/表单数据规范。 我面临的问题是浏览器将 Content-Type 标头设置为 text/plain 并且它

回答 2 投票 0

在特定 Android 手机上通过 XMLHttpRequest 上传视频文件失败

我们的测试人员无法在特定的Android手机上上传视频文件(.mp4),但他可以在iPhone和另一台Android手机上上传相同的文件。 然后我尝试通过连接与他进行测试...

回答 1 投票 0

XHR HEAD 请求是否可以不遵循重定向(301 302)

是否可以发送 xhr HTTP HEAD 请求以仅获取第一个请求的标头响应,而不像重定向一样自动遵循 301、302?我只对获得新位置感兴趣...

回答 4 投票 0

使用 JS(不是 jQuery)将表单数据发送到 PHP 页面

如何在JS(不是jQuery)中以Ajax发送表单数据: 发送 如何在JS(不是jQuery)中以Ajax发送表单数据: <form> <input name="name"> <input name="age"> <button type="submit">Send</button> </form> 到目前为止我尝试过的: await fetch('assets/php/ajax/login.php', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(data) }); 如何将表单数据获取到我的数据变量? 谢谢。 您可以尝试以下示例。 我已经使用这种格式的方式来做同样的事情。 document.getElementById("myForm").addEventListener("submit", function(event) { event.preventDefault(); // Prevent the default form submission // Create a new FormData object from the form var formData = new FormData(this); // Create a new XMLHttpRequest object var xhr = new XMLHttpRequest(); // Specify the POST method and the URL to send the request to xhr.open("POST", "assets/php/ajax/login.php", true); // Set the onload function to handle the response xhr.onload = function() { if (xhr.status === 200) { // Request was successful console.log(xhr.responseText); } else { // Request failed console.error('Request failed: ' + xhr.status); } }; // Send the FormData object as the request body xhr.send(formData); });

回答 1 投票 0

Laravel Route 缺少必需参数

我有这个模式,通过使用 ajax 检索到的数据填充模式来编辑数据。 但是,我遇到了 AJAX 中的 URL 和 Laravel 路由的问题,并出现以下错误: 缺少必需的参数...

回答 1 投票 0

AJAX - 在 mysql 中插入数据

下面的代码在字段中输入值后显示一条消息 Poprawnie zapisano: - 但没有这个值 也不向数据库写入任何内容。我是不是在某个地方犯了错误? HTM...

回答 1 投票 0

尝试在本地对jqGrid进行排序仍然调用服务器端排序功能

我有一个 jqGrid,其中填充了来自服务器的数据,如下所示: $("#dataGrid").jqGrid({ url: 'url/load.json', 数据类型:'json', mtype: 'POST', ....

回答 1 投票 0

从网站提取数据

我想从网站中提取属性数据, 我使用 mechanize 从几个网站获取数据, 我在这个网站上尝试过机械化,我得到了第一页的所有重复结果

回答 2 投票 0

将字节数组从 AJAX 传递到 Java

我正在尝试通过 AJAX 向服务器发送字节数组: $.ajax({ url:armd.scieldan.server + "/detachedSignFile/", 超时:120000, 类型:“帖子”, 数据:字节数组,

回答 1 投票 0

如何获取客户当前位置图钉并显示在地图上

如何获取客户位置图钉并在地图中显示。还希望当客户 pin 位置时它将插入到 Mysql 数据库中。如何使用 PHP、Mysql、Javascript 和 Html。 我想创建小整数...

回答 1 投票 0

更新和过滤 Laravel 数据表

我想返回一个数据表,其中包含数组中的集合,我可以从浏览器的网络检查器中看到响应和预览选项卡,所有数据都显示在那里,但出于某些原因...

回答 1 投票 0

在 ASP.NET CORE 中使用滑块过滤价格

我正在尝试使用滑块进行价格过滤。景色将会是这样的。我使用ajax来填充价格。这是滑块和产品视图的代码: 我正在尝试使用滑块进行价格过滤。看到的景色会是这样的。我使用ajax来填充价格。这是滑块和产品视图的代码: <div class="price-filter"> <div id="price-slider"></div> <div class="input-number price-min"> <input id="price-min" type="number"> <span class="qty-up">+</span> <span class="qty-down">-</span> </div> <span>-</span> <div class="input-number price-max"> <input id="price-max" type="number"> <span class="qty-up">+</span> <span class="qty-down">-</span> </div> </div> //product <div id="store" class="col-md-9"> <div class="row"> <!-- product --> @foreach (var item in Model.Take(6)) { <div class="col-md-4 col-xs-6"> <div class="product"> <a href="/post/@SlugGenerator.SlugGenerator.GenerateSlug(item.ProductName)[email protected]().ProductVariations.FirstOrDefault().ProductVarId" /> <div class="product-img"> <img src="~/Contents/img/@item.ProductItems.FirstOrDefault().Image1" width="200" height="200" alt=""> <div class="product-label"> <span class="sale">-30%</span> <span class="new">NEW</span> </div> </div> <div class="product-body"> @* <p class="product-category">@item.Category.CategoryName.ToUpper()</p> *@ <h3 class="product-name"><a href="#">@item.ProductName.ToUpper()</a></h3> <h4 class="product-price">[email protected]<del class="product-old-price">@* $@(item.Product.Price + 200) *@</del></h4> <div class="product-rating"> <i class="fa fa-star"></i> <i class="fa fa-star"></i> <i class="fa fa-star"></i> <i class="fa fa-star"></i> <i class="fa fa-star"></i> </div> <div class="product-btns"> <button class="add-to-wishlist"><i class="fa fa-heart-o"></i><span class="tooltipp">add to wishlist</span></button> <button class="add-to-compare"><i class="fa fa-exchange"></i><span class="tooltipp">add to compare</span></button> <button class="quick-view"><i class="fa fa-eye"></i><span class="tooltipp">quick view</span></button> </div> </div> </div> </div> } <!-- /product --> </div> </div> ajax 代码,因此可以按价格过滤产品,而无需重新加载页面: <script> $(function () { $("#price-slider").slider({ range: true, min: 100000, max: 2000000, values: [100000, 2000000], slide: function (event, ui) { $("#price-min").val(ui.values[0]); $("#price-max").val(ui.values[1]); }, stop: function (event, ui) { var min = ui.values[0]; var max = ui.values[1]; var cateid = $('#category-id').val(); $.ajax({ url: '@Url.Action("FilterByPrice", "ProductView")', type: 'GET', data: { minPrice: min, maxPrice: max, categoryId: cateid }, success: function (productlist) { var newproductrow = ""; $.each(productlist, function (index, item) { newproductrow += '<div class="col-md-4 col-xs-6">'; newproductrow += '<div class="product">'; newproductrow += '<a href="/post/' + item.SlugGenerator.SlugGenerator.GenerateSlug(item.ProductName) + '-' + item.ProductItems[0].ProductVariations[0].ProductVarId + '">'; newproductrow += '<div class="product-img">'; newproductrow += '<img src="~/Contents/img/' + item.ProductItems[0].Image1 + '" width="200" height="200" alt="">'; newproductrow += '<div class="product-label">'; newproductrow += '<span class="sale">-30%</span>'; newproductrow += '<span class="new">NEW</span>'; newproductrow += '</div>'; // Close product-label newproductrow += '</div>'; // Close product-img newproductrow += '<div class="product-body">'; newproductrow += '<h3 class="product-name"><a href="#">' + item.ProductName.toUpperCase() + '</a></h3>'; newproductrow += '<h4 class="product-price">$' + item.Price + '<del class="product-old-price">$' + (item.Price + 200) + '</del></h4>'; newproductrow += '<div class="product-rating">'; newproductrow += '<i class="fa fa-star"></i>'; newproductrow += '<i class="fa fa-star"></i>'; newproductrow += '<i class="fa fa-star"></i>'; newproductrow += '<i class="fa fa-star"></i>'; newproductrow += '<i class="fa fa-star"></i>'; newproductrow += '</div>'; // Close product-rating newproductrow += '<div class="product-btns">'; newproductrow += '<button class="add-to-wishlist"><i class="fa fa-heart-o"></i><span class="tooltipp">add to wishlist</span></button>'; newproductrow += '<button class="add-to-compare"><i class="fa fa-exchange"></i><span class="tooltipp">add to compare</span></button>'; newproductrow += '<button class="quick-view"><i class="fa fa-eye"></i><span class="tooltipp">quick view</span></button>'; newproductrow += '</div>'; // Close product-btns newproductrow += '</div>'; // Close product-body newproductrow += '</div>'; // Close product newproductrow += '</div>'; // Close col-md-4 }); $("#store .row").html(newproductrow); } }); } }); }); </script> 控制器过滤价格: [HttpGet] public IActionResult FilterByPrice(int minPrice, int maxPrice, int categoryId) { var filteredProducts = _context.Products .Where(p => p.Price >= minPrice && p.Price <= maxPrice && p.CategoryId == categoryId) .ToList(); return new JsonResult(filteredProducts); } 但是当我调整那个栏时,什么也没有发生。我打开网络并选择Fetch/XHR,当我调整栏时,我看到有一个json返回。 json 返回: { "$id": "1", "$values": [ { "$id": "2", "productId": 8, "productName": "POSEE", "categoryId": 4, "price": 400000, "description": null, "brand": 5, "brandNavigation": null, "category": null, "productItems": { "$id": "3", "$values": [] } }, { "$id": "4", "productId": 9, "productName": "ShondoHCM", "categoryId": 4, "price": 500000, "description": null, "brand": 11, "brandNavigation": null, "category": null, "productItems": { "$id": "5", "$values": [] } }, { "$id": "6", "productId": 10, "productName": "BITIS", "categoryId": 4, "price": 800000, "description": null, "brand": 4, "brandNavigation": null, "category": null, "productItems": { "$id": "7", "$values": [] } } ] } 有人知道为什么产品不按价格显示的问题吗?我相信这是关于 for 循环的。我真的很感谢任何指导。谢谢你 该错误很可能是因为您在 jQuery 代码中使用 PascalCase 属性,并且以驼峰命名法接收 JSON。要修复它,请将脚本更改为: <script> $(function () { $("#price-slider").slider({ range: true, min: 100000, max: 2000000, values: [100000, 2000000], slide: function (event, ui) { $("#price-min").val(ui.values[0]); $("#price-max").val(ui.values[1]); }, stop: function (event, ui) { var min = ui.values[0]; var max = ui.values[1]; var cateid = $('#category-id').val(); $.ajax({ url: '@Url.Action("FilterByPrice", "ProductView")', type: 'GET', data: { minPrice: min, maxPrice: max, categoryId: cateid }, success: function (productlist) { var newproductrow = ""; $.each(productlist, function (index, item) { newproductrow += '<div class="col-md-4 col-xs-6">'; newproductrow += '<div class="product">'; newproductrow += '<a href="/post/' + item.SlugGenerator.SlugGenerator.GenerateSlug(item.productName) + '-' + item.productItems[0].productVariations[0].productVarId + '">'; newproductrow += '<div class="product-img">'; newproductrow += '<img src="~/Contents/img/' + item.productItems[0].image1 + '" width="200" height="200" alt="">'; newproductrow += '<div class="product-label">'; newproductrow += '<span class="sale">-30%</span>'; newproductrow += '<span class="new">NEW</span>'; newproductrow += '</div>'; // Close product-label newproductrow += '</div>'; // Close product-img newproductrow += '<div class="product-body">'; newproductrow += '<h3 class="product-name"><a href="#">' + item.productName.toUpperCase() + '</a></h3>'; newproductrow += '<h4 class="product-price">$' + item.price + '<del class="product-old-price">$' + (item.price + 200) + '</del></h4>'; newproductrow += '<div class="product-rating">'; newproductrow += '<i class="fa fa-star"></i>'; newproductrow += '<i class="fa fa-star"></i>'; newproductrow += '<i class="fa fa-star"></i>'; newproductrow += '<i class="fa fa-star"></i>'; newproductrow += '<i class="fa fa-star"></i>'; newproductrow += '</div>'; // Close product-rating newproductrow += '<div class="product-btns">'; newproductrow += '<button class="add-to-wishlist"><i class="fa fa-heart-o"></i><span class="tooltipp">add to wishlist</span></button>'; newproductrow += '<button class="add-to-compare"><i class="fa fa-exchange"></i><span class="tooltipp">add to compare</span></button>'; newproductrow += '<button class="quick-view"><i class="fa fa-eye"></i><span class="tooltipp">quick view</span></button>'; newproductrow += '</div>'; // Close product-btns newproductrow += '</div>'; // Close product-body newproductrow += '</div>'; // Close product newproductrow += '</div>'; // Close col-md-4 }); $("#store .row").html(newproductrow); } }); } }); }); 此行也会抛出错误: newproductrow += '<a href="/post/' + item.SlugGenerator.SlugGenerator.GenerateSlug(item.productName) + '-' + item.productItems[0].productVariations[0].productVarId + '">'; 最好在后端调用SlugGenerator.GenerateSlug,如下所示: [HttpGet] 公共异步任务 FilterByPrice(int minPrice, int maxPrice, int CategoryId) { var filteredProducts = await _context.Products .Where(p => p.Price >= minPrice && p.Price <= maxPrice && p.CategoryId == categoryId) .Select(m => new ProductView { Brand = m.Brand, BrandNavigation = m.BrandNavigation, Category = m.Category, CategoryId = categoryId, Description = m.Description, Id = m.Id, Price = m.Price, ProductId = m.ProductId, ProductItems = m.ProductItems, ProductName = m.ProductName, //Here to generate SlugName using SlugGenerator (Note that method must be static) SlugName = Item.SlugGenerator.GenerateSlug(m.ProductName), }) .ToListAsync(); return new JsonResult(filteredProducts); } 并在 jQuery 中将该行更改为 newproductrow += '<a href="/post/' + item.slugName + '">';

回答 1 投票 0

从ajax调用Web API

我在.NET中有以下代码: // 获取 api/EmailValidationStaging/5 公共电子邮件验证 GetEmailValidation(长 ID) 这是一个 GET 方法,我可以这样调用它: $("#buttonFIND").c...

回答 1 投票 0

是否可以使用AJAX和PHP实现实时搜索

我正在尝试使用 PHP 和 AJAX 制作一个网络应用程序。它应该从 Elasticsearch 检索数据而不刷新页面(实时搜索)。在elasticsearch上是否可以实现这样的检索...

回答 2 投票 0

控制器方法接收 Ajax 发送的数据为 null

我有一个简单的控制器方法,期望接收一个字符串参数: 公共类 ZTest :BaseController { [http邮报] 公共异步任务测试(stri...

回答 1 投票 0

使用 Ajaxate 的 Shopify 无限滚动在应用过滤器后停止工作

{% 如果模板包含“集合”%} document.addEventListener("DOMContentLoaded", function() { var 无休止的滚动 = 新的 Ajaxate({ 容器:'#product-grid...</desc> <question vote="0"> <pre><code> {% if template contains &#39;collection&#39; %} &lt;script&gt; document.addEventListener(&#34;DOMContentLoaded&#34;, function() { var endlessScroll = new Ajaxinate({ container: &#39;#product-grid&#39;, pagination: &#39;#Huratips-Pagination&#39;, loadingText: `&lt;div class=&#34;loading&#34; style=&#34;text-transform: uppercase; padding-bottom: 40px; padding-top: 40px; display: flex; flex-wrap: wrap; align-items: center; justify-content: center;&#34;&gt; &lt;span style=&#34;height: 30px; width: 30px; background-repeat: no-repeat; background-size: contain; display: inline-block; background-image: url(https://cdn.shopify.com/s/files/1/0691/4221/6959/files/loader-black.svg?v=1712406692);&#34;&gt;&lt;/span&gt; &lt;span&gt;Loading more products&lt;/span&gt; &lt;/div&gt;` }); }); &lt;/script&gt; {% endif %} </code></pre> <p>我已经在我的shopify商店上编写了用于无限滚动的代码,但是在应用排序或过滤器后,该代码停止工作,可能我认为这是由于当我们在shopify中应用排序或过滤时,它会重新加载类下的内容。 Product-grid-container 并替换整个 html,这就是为什么 #product-grid 及其内容是新的,因此它在应用排序或过滤后停止工作,有什么方法可以处理这种情况吗?</p> <p><a href="https://i.stack.imgur.com/ITYXJ.png" target="_blank"><img src="https://cdn.txt58.com/i/AWkuc3RhY2suaW1ndXIuY29tL0lUWVhKLnBuZw==" alt=""/></a></p> <p>在这张图片中,我展示了重新加载 .product-grid-container .collection 下的整个内容,我在 shopify 中使用聚光灯主题。</p> <p>提前感谢您的帮助..:)</p> </question> <answer tick="false" vote="0"> <p>看来你的分析是正确的。当您在 Shopify 中应用排序或过滤时,ID 为 #product-grid 的容器内的内容将被替换,这会破坏 Ajaxate 设置的功能,因为新内容没有附加必要的事件侦听器。</p> <p>要处理这种情况,您需要在应用排序或过滤后重新初始化 Ajaxate。您可以通过监听排序或过滤机制触发的事件来完成此操作,然后在这些事件发生时重新初始化 Ajaxate。</p> <p>以下是如何修改代码来实现此目的:</p> <p></p><div data-babel="false" data-lang="js" data-hide="false" data-console="true"> <div> <pre><code>{% if template contains &#39;collection&#39; %} &lt;script&gt; document.addEventListener(&#34;DOMContentLoaded&#34;, function() { // Function to initialize Ajaxinate function initializeAjaxinate() { var endlessScroll = new Ajaxinate({ container: &#39;#product-grid&#39;, pagination: &#39;#Huratips-Pagination&#39;, loadingText: `&lt;div class=&#34;loading&#34; style=&#34;text-transform: uppercase; padding-bottom: 40px; padding-top: 40px; display: flex; flex-wrap: wrap; align-items: center; justify-content: center;&#34;&gt; &lt;span style=&#34;height: 30px; width: 30px; background-repeat: no-repeat; background-size: contain; display: inline-block; background-image: url(https://cdn.shopify.com/s/files/1/0691/4221/6959/files/loader-black.svg?v=1712406692);&#34;&gt;&lt;/span&gt; &lt;span&gt;Loading more products&lt;/span&gt; &lt;/div&gt;` }); } // Initialize Ajaxinate on page load initializeAjaxinate(); // Listen for events that indicate sorting or filtering is applied // Assuming you have some sort of event that triggers after sorting/filtering // Replace &#39;your-sorting-event&#39; with the actual event name document.addEventListener(&#39;your-sorting-event&#39;, function() { // Reinitialize Ajaxinate after sorting or filtering is applied initializeAjaxinate(); }); }); &lt;/script&gt; {% endif %}</code></pre> </div> </div> <p></p> <p>将“your-sorting-event”替换为 Shopify 在应用排序或过滤后使用的实际事件名称或触发器。如果您使用 JavaScript 来处理排序/过滤,这可能是自定义事件;如果您使用的是 Shopify 库或框架,则它可能是由 Shopify 库或框架提供的事件。</p> <p>这样,每次应用排序或过滤时,Ajaxate 都会重新初始化,确保即使在内容被替换后,无限滚动也能继续工作。</p> </answer> </body></html>

回答 0 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.