[英]404 error in calling ashx handler of Web Api
I have an ImageUploadHandler.ashx
handler in my WebApi Project. 我的WebApi项目中有一个ImageUploadHandler.ashx
处理程序。 Source code is available here . 源代码可在此处获得 。 I am trying to call my handler from my AngularJs project. 我正在尝试从AngularJs项目中调用处理程序。 Here is the code: 这是代码:
var serviceBase = 'http://baseDomain/';
var plupload = null;
$scope.uploadedFiles = [];
$scope.fileUpload = {
url: serviceBase + 'ImageUploadHandler.ashx',
options: {
multi_selection: true,
drop_element: "pluploadDropzone",
chunk_size: '200kb',
runtimes: 'html5,flash,silverlight,html4',
browse_button: "pluploadDropzone",
container: "pluploadContainer",
max_file_size: '3mb',
mime_types: [{ title: 'Allowed', extensions: 'jpeg, jpg, png, gif' }]
},
callbacks:
{
filesAdded: function (uploader, files) {
plupload = uploader;
for (var i = 0 ; i < files.length ; i++) {
var file = files[i];
$scope.uploadedFiles.push(file);
plupload.start();
}
}
}
}
Html: HTML:
<div id="pluploadContainer" class="uploader">
<a ng-hide="uploadedFiles.length >= 10" id="pluploadDropzone"
plupload="fileUpload.url"
plupload-options="fileUpload.options"
plupload-callbacks="fileUpload.callbacks"
class="dropzone html5Dropzone" style="width: 464px;">
<span ng-hide="uploadedFiles.length >= 10" class="instructions html5Instructions">
Drag & Drop Your Files Here!
</span>
</a>
<div class="m-images">
<ul class="images">
<li ng-repeat="file in uploadedFiles" class="image">
<div class="thumbnail">
{{ file.name }}
</div>
<a ng-click="deleteImage(file)" class="delete">×</a>
</li>
</ul>
</div>
I am getting 404 error while calling this handler, Here is the error snapshot: 调用此处理程序时出现404错误,这是错误快照:
This did the trick: 这达到了目的:
public void ProcessRequest(HttpContext context)
{
context.Response.ClearHeaders();
string origin = context.Request.Headers["Origin"];
context.Response.AppendHeader("Access-Control-Allow-Origin",
string.IsNullOrEmpty(origin) ? "*" : origin);
string requestHeaders = context.Request.Headers["Access-Control-Request-Headers"];
context.Response.AppendHeader("Access-Control-Allow-Headers",
string.IsNullOrEmpty(requestHeaders) ? "*" : requestHeaders);
context.Response.AppendHeader("Access-Control-Allow-Methods", "POST, OPTIONS");
}
Plus I have to register my handler in web.config
另外,我必须在web.config
注册我的处理程序
<system.webServer>
<validation validateIntegratedModeConfiguration="false"/>
<modules runAllManagedModulesForAllRequests="true">
</modules>
<handlers>
<add name="ImageUploadHandler" verb="*" path="ImageUploadHandler.ashx" type="JetAdz.WebApi.ImageUploadHandler, JetAdz.WebApi, Version=1.0.0.0, Culture=neutral" />
</handlers>
</system.webServer>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.