我在尝试Ajax请求的项目中收到错误
[Deprecation]主线程上的同步XMLHttpRequest因其对最终用户体验的不利影响而被弃用.
function getReviews() {
var toReturn = $.ajax({
url: 'API/reviews.json',
async: false
}).responseJSON;
return toReturn;
}
Run Code Online (Sandbox Code Playgroud)
我想知道是否有不同的方法来写这个没有错误
我现在挣扎了好几个小时.我想向另一个域发出一个简单的ajax请求,但始终获取http 401错误:
jQuery(document).ready(function($){
var challengeid = $('#codepressHook').data('challengeid');
var clicked = false;
$('#codepressHook').click(function(){
if(!clicked){
$.ajax({
url: "https://dev.radbonus.com/admin/affiliate-connections/retrieveSingle/"+challengeid+".json",
method: "GET",
dataType: "json",
jsonp: false,
contentType: "application/json",
xhrFields: {
withCredentials: true
},
beforeSend: function(xhr){
xhr.setRequestHeader("Authorization", "Basic "+ btoa(username+":"+password));
},
success: function(data){
$('#codepressHock').html(data.data.code);
},
error: function(error){
alert(error);
}
});
}
});
});
Run Code Online (Sandbox Code Playgroud)
我在服务器端设置了所有相关的CORS头.这是网络流量:
Request URL:https://dev.radbonus.com/admin/affiliate-connections/retrieveSingle/45.json
Request Method:OPTIONS
Status Code:401 Unauthorized
Remote Address:185.102.94.230:443
Referrer Policy:no-referrer-when-downgrade
Response Headers
view source
Access-Control-Allow-Credentials:true
Access-Control-Allow-Headers:Content-Type, X-Requested-With, Authorization, Origin
Access-Control-Allow-Methods:POST, GET, PUT, DELETE, OPTIONS
Access-Control-Allow-Origin:http://radbonus.com
Access-Control-Max-Age:31536000
Content-Length:463
Content-Type:text/html; charset=iso-8859-1
Date:Sat, …
Run Code Online (Sandbox Code Playgroud) 我正在尝试从我的Outlook加载项发送第三方服务的POST Ajax请求,但无论我尝试接收什么Error: Access is denied
,状态0
(请求永远不会命中服务器).
假设我们正在运行IE9或8,我尝试了旧的学校黑客,如https://github.com/MoonScript/jQuery-ajaxTransport-XDomainRequest.
$.ajax({
url: endpoint,
data: JSON.stringify({'1':'2'}),
// headers: {'X-Requested-With': 'XMLHttpRequest'},
contentType: 'text/plain',
type: 'POST',
dataType: 'json',
error: function(xhr, status, error) {
// error
}
}).done(function(data) {
// done
});
Run Code Online (Sandbox Code Playgroud)
我需要实施更多的东西吗?因为我将我的域添加到manifest AppDomain
属性.
干杯
在我们的Web应用程序中,我们使用XHR.getAllResponseHeaders()
-function来获取头字段名称.我们使用它X-Access-Token
来接收我们在下一个请求中发送的JWT令牌以保持会话.从今天开始,登录后,每个下一个请求都会导致重定向回登录页面.
奇怪的是,只有Chrome才有这个问题,而不是Firefox或Safari.它只在我的电脑上,因为我的同事仍然可以登录,而我不能.
我们使用相同的软件,一些javascript,相同的一切,所以我们注意到它必须是我的浏览器.试过重新安装和禁用一些插件,但这没关系.
我看起来该XHR.getAllResponseHeaders()
函数返回错误的值,虽然我们从服务器发送正确的值...任何人都知道为什么它不再工作?
因此,关于野生动物园我遇到了一个奇怪的问题。我正在为我们公司开发一个新站点,并且正在使用PJAX加载页面内容。我使用srcset属性显示的大多数图像,例如下面的示例代码:
<img src="/img/projects/{{ post.cover-image }}.jpg" alt="{{ post.title }}"
srcset="/img/projects/{{ post.cover-image }}-400.jpg 400w,
/img/projects/{{ post.cover-image }}-600.jpg 600w,
/img/projects/{{ post.cover-image }}-900.jpg 900w,
/img/projects/{{ post.cover-image }}-900.jpg 1200w,
/img/projects/{{ post.cover-image }}-900.jpg 1800w,
/img/projects/{{ post.cover-image }}-900.jpg 2400w"
sizes = "(min-width: 2400px) 900px,
(min-width: 1800px) 600px,
(min-width: 1200px) 500px,
(min-width: 900px) 500px,
(min-width: 600px) 600px,
(min-width: 400px) 400px" />
Run Code Online (Sandbox Code Playgroud)
请注意,这是使用jekyll构建的,因此已存在变量。
我在这些图像上使用对象适合,但我意识到这有其自身的问题(主要是IE),但这是一个不同的主题。无论页面是最初加载的页面还是通过单击链接通过PJAX加载的页面,正确的图像都可以在Firefox和Chrome上正确显示。
Safari出现问题,如果页面是初始页面,则图像会正确显示,但是当通过单击链接通过PJAX加载页面时,srcset中最小的图像就是被加载的图像。看起来当由PJAX加载时,对象适配可能也会断裂,但在初始加载时不会断裂。
这是指向页面的链接,您可以看到此情况的示例:http : //insight.insightcreative.info/work
如果直接加载页面或进行强制刷新,则图像将看起来都很好。但是,如果您通过单击链接离开页面,然后再次单击工作链接返回页面,则会突然发现所有图像的质量都很差,并且正在加载-400(400px)图片的尺寸版本。
发生的另一件奇怪的事情,例如在此页面上:http : //insight.insightcreative.info/work/river-valley-bank-50th-anniversary.html,该图像仅在最初加载页面时才会显示。如果通过链接(工作页面上的第一个项目)通过PJAX导航至页面,则图像甚至不会显示。
起初我还以为这些问题可能发生的,因为我没有足够的尺寸属性包括在我的srcset图像,但在测试他们与包括大小属性之后,他们仍然不正常工作。我不知道这是否是关于Safari的Ajax,css或html的问题。
有人可以提供的任何见解都会很棒。同样,这些只是我在Safari中看到的唯一问题。
编辑
作为解决图像质量的方法,我仔细检查了所有图像,并从最高质量到最低质量对srcset图像进行了排序。由于Safari仅查看srcset中的第一张图像,因此至少为我提供了高质量的图像。我仍然不知道为什么Safari在加载AJAX时将某些图像的高度设置为0,但是对此我会提出另一个问题。
我正在开发运行服务器https://localhost:port
并使用自签名证书的NodeJS应用程序 (因为没有供应商为localhost提供证书).我正在使用来自我网站的AJAX调用来访问locahost并将数据发送到NodeJs应用程序.由于预期的INSECURE_CONTENT,我的电话被阻止了.我想知道我们是否有任何解决方法?
我发现在页面上有多个处理程序的示例以及相关的命名约定(即OnPostXXX)和'asp-post-hanlder'标记帮助程序.但是如何从AJAX调用中调用其中一个方法.
我有一个典型的MVC视图和控制器的旧示例,但这如何与Razor页面一起使用?
例如,如果我使用基本应用程序并将About.cshtml页面修改为以下内容:
@page
@model AboutModel
@{
ViewData["Title"] = "About";
}
<h2>@ViewData["Title"]</h2>
<h3>@Model.Message</h3>
<input type="button" value="Ajax test" class="btn btn-default" onclick="ajaxTest();" />
@section Scripts {
<script type="text/javascript">
function ajaxTest() {
console.log("Entered method");
$.ajax({
type: "POST",
url: '/About', // <-- Where should this point?
contentType: "application/json; charset=utf-8",
dataType: "json",
error: function (xhr, status, errorThrown) {
var err = "Status: " + status + " " + errorThrown;
console.log(err);
}
}).done(function (data) {
console.log(data.result);
})
}
</script>
}
Run Code Online (Sandbox Code Playgroud)
在模型页面About.cshtml.cs上
public class AboutModel : …
Run Code Online (Sandbox Code Playgroud) 我有一个@include一些内容的页面,我想@include使用ajax请求的刀片视图文件.我该怎么办
基本上,视图文件将从服务器获取项目,
**price.blade.php**
@foreach ($items as $item)
<div class="item-post">
<div class="priceofitem">{{ $item->price }} </div>
Run Code Online (Sandbox Code Playgroud)
我想在我的标签部分中包含@include('price.blade.php')
<ul class="tabs">
<li><a href="#tab1">Prices </li>
<div id="tab1">@include('price.blade.php')</div>
Run Code Online (Sandbox Code Playgroud)
我不希望在加载时自动包含该视图文件,因为我不想加载该选项卡的内容,除非用户点击它,如果用户想要价格而不是用户点击该选项卡,以及AJAX请求将被发送以包含该文件.
希望我明确表示,如果你不理解我,请告诉我.
手指交叉
我试图只是jquery ajax调用以从Razor页面检索用户列表。
Users.cshtml.cs页面:
public ActionResult OnPostList(string FirstName, string LastName,string IsActive)
{
var data=(from s in _db.SecurityUser
where s.FirstName.Contains(FirstName) && s.LastName.Contains(LastName) && (IsActive=="" || (IsActive =="Y" && s.IsActive==true) || (IsActive == "N" && s.IsActive == false))
select s).OrderBy(s=>s.FirstName);
return new JsonResult(data);
}
Run Code Online (Sandbox Code Playgroud)
JS通话:
$.ajax({
type: "POST",
url: "/Security/Users?handler=List",
data: JSON.stringify({
FirstName: $("#txtFirstName").val(),
LastName: $("#txtLastName").val(),
IsActive: $("#ddActive").val()
}),
contentType: "application/json",
dataType: "json",
success: function (response) {
var d = response.d;
var tblBody = $("#tblUsers > tbody");
tblBody.empty();
$.each(d, function (i, item) { …
Run Code Online (Sandbox Code Playgroud) 我只是开发一个SPA,并且需要我通过react componentDidMount发送到我的服务器端(节点)的异步请求提供帮助。查询有效,但是如果我快速切换到其他页面,则ajax响应中的setState函数仍在运行。尽管未安装组件。
只能更新已安装或正在安装的组件。这通常意味着您在未安装的组件上调用了setState()。这是无人值守。请检查未定义组件的代码。
为避免此错误,如果这是正确的方法,我想中止/取消在componentWillUnmount上发送的请求。
我尝试使用xml和axios进行此操作,但是它不起作用。我希望你有一个对我有用的榜样。我为其他请求方法(例如提取或其他方法)开放。
该代码看起来像这样(Axios),但是它不会取消请求:
import * as React from 'react';
import axios from 'axios';
let CancelToken = axios.CancelToken;
let source = CancelToken.source();
class MakeAjaxRequest extends React.Component {
constructor() {
super();
this.state = {
data: {}
}
}
componentDidMount() {
const that = this;
axios.get('/user/12345', {
cancelToken: source.token
})
.then(function (response) {
if (axios.isCancel(response)) {
console.log('Request canceled', response);
} else {
that.setState({
data: response.data
});
}
})
.catch(function (thrown) {
if (axios.isCancel(thrown)) {
console.log('Request canceled', thrown.message);
} else { …
Run Code Online (Sandbox Code Playgroud)