Enabling CORS in Angular JS

Note: This post covers how to enable CORS with AngularJS<1.2. Apparently in the latest AngularJS versions you don't have to add anything to make it work.

I was recently experimenting with building an API with django-tastypie and make it accessible via CORS, so it can be used from a different host from an AngularJS app.

For the Django part it was relatively straightforward. I could have either written my own Middleware, dealing with incoming CORS requests, but decided to use django-cors-headers in the end. Following the instructions in the github repo and adding my host where AngularJS is hosted to the CORS_ORIGIN_WHITELIST setting did enable the Django server to handle CORS.

With AngularJS it was a little more tricky, mainly because information is spread all over the web. Beside the fact that I was trying to implement a service using ngResource to communicate with the API, the following did enable AngularJS to send its requests with the appropriate CORS headers globally for the whole app:

var myApp = angular.module('myApp', [
    'myAppApiService']);

myApp.config(['$httpProvider', function($httpProvider) {
        $httpProvider.defaults.useXDomain = true;
        delete $httpProvider.defaults.headers.common['X-Requested-With'];
    }
]);

_

Just setting useXDomain to true is not enough. AJAX request are also send with the X-Requested-With header, which indicate them as being AJAX. Removing the header is necessary, so the server is not rejecting the incoming request.

Write a comment

You can use reStructeredText syntax to write a comment.

captcha
5 years, 5 months ago (2013-05-19)
 by shie

awesome post thanks!

5 years, 4 months ago (2013-05-31)
 by rookiee

Man, you made my day.. been struggling with this for few days.

Thankyou!!!

5 years, 4 months ago (2013-06-12)
 by jordan

This worked for me for all requests except POST. When Angular makes the OPTIONS request before my POST, i still get a 405 saying the OPTIONS method is not allowed. Has anybody else run into this?

5 years, 4 months ago (2013-06-18)
 by karthik

In our project, I tried to use $http POST as well as GET, but OPTIONS request goes before and hangs after that.

jordan - For you is GET Request working?

5 years, 3 months ago (2013-06-24)
 by Torsten

When using the $resource module and doing a save (POST request) it does work fine for me. The OPTIONS request is fired in correct order. I will try it with plain $http dependency and get back to you here.

5 years, 3 months ago (2013-06-24)
 by Torsten

Works as well with $http.post for me. Maybe you can send a simple not working example of yours and I'll check. Simple contact me at http://better-inter.net/about/ and I get back to you.

5 years, 2 months ago (2013-08-19)
 by Mark

Thankyou so much! Saved me a lot of time...

5 years, 2 months ago (2013-08-20)
 by Mike Ward

Worked liked a charm. Even with post. Thanks man!

5 years, 1 month ago (2013-09-11)
 by fp

I run into the same problem.

I´m using ngResource.

$httpProvider.defaults.useXDomain = true works fine for GET-Requests but when i use the save()-method from ngResource it do a OPTIONS Request instead a POST-Request. Can someone here provide help.

Thanks

5 years ago (2013-10-17)
 by Klas Mellbourn

The weird thing is that I did not have to do this. As long as the server is correctly set up for CORS, my angular app worked anyway. Am I missing something?

4 years, 11 months ago (2013-11-05)
 by Torsten

@fp OPTIONS request is the usual behavior in CORS. Your server might not be correctly set up to support CORS, that's why you can not do further requests.

@Klas Mellbourn thx for the reply. Maybe it depends on the AngularJS version. I wasn't updating for a while since I use this approach. What is the version you are using?

4 years, 9 months ago (2014-01-21)
 by bestantigua

This is an amazing tip and I agree that its quick and dirty but ideal. I first saw that ahh I need python not knowing that it must already bebundled with my mac Unix version. So I ran my own server for dev testing as quick as that. Thanks for sharing. Can I plug antigua blog ?

4 years, 8 months ago (2014-01-28)
 by Payam

hi, i have a problem with sending "DELETE" request to my server using AngularJS. I followed your instructions but only query() and get() methods works flawless, but remove() function which user {method: "DELETE"} does not work and my server receives OPTIONS instead of DELETE. Thank you for your help

4 years, 8 months ago (2014-01-31)
 by Torsten

@bestantigua Not sure what antigua blog is, but glad I could help. --- @Payam I never tried it with a DELETE request. I recenlty switched to restangular (https://github.com/mgonto/restangular) since I felt the angular.resource is a little to abstract for my use cases. I'll let you know once I will need to deal with DELETE requests there. Maybe that helps with the resource object as well.

4 years, 4 months ago (2014-06-17)
 by anshu

AngularJs resource not working in IE 8/9 due to CORS issue. I had resolved using $ajax, but client want resolution in angularjs itself.. $httpProvider.defaults.useXDomain = true;

System Message: ERROR/3 (<string>, line 4)

Unexpected indentation.
delete $httpProvider.defaults.headers.common['X-Requested-With'];

System Message: WARNING/2 (<string>, line 5)

Block quote ends without a blank line; unexpected unindent.

Not working above code for IE9. I tried to figured out last few months,but still nothing get in my hand. How to resolve cors issue in ie9 using angularjs?

3 years, 9 months ago (2015-01-22)
 by sharedmocha

In below code where should i add the above code ?

function customersController($scope,$log,$http) {
$log.debug("sssssssssssss");



    var promise = $http({
        url: 'hhttps://test.com',
            method: 'POST',
            params: {
                contacts: "+123",
                text: "Testing"
            },
            headers: {
                'Content-Type': 'application/json' , 'Access-Control-Allow-Origin': '*'
            }
        }).then(function(response) {
            $scope.dam = response.id;
                            $log.debug("0000000000000000");

        });
        return promise;
                    $scope.dam1 = promise;
}
3 years, 8 months ago (2015-02-13)
 by Anil Singh

Its Awesome post!! Helpful for me!!

It might help you!! http://www.code-sample.com/2015/02/enabling-cors-in-angularjs.html

3 years, 2 months ago (2015-08-11)
 by mahaveer

But it doesnt seems to work on iE8 :(

2 years, 8 months ago (2016-02-05)
 by dfgsdf

dfsgdsfg

2 years, 7 months ago (2016-03-15)
 by andrew

alert("Hello! I am an alert box!!");

2 years, 3 months ago (2016-07-01)
 by rrr

ttttt

1 year, 5 months ago (2017-05-22)
 by dfd

dfdf

5 months ago (2018-05-21)
 by Richardamits

Click Here!

3 months, 1 week ago (2018-07-10)
 by medanFlout

Разобравшись в том, каким образом работает принцип осознанного сновиденияи изучив способы управления сознанием, Вы сможете получить незабываемый опыт. Благодаря развитию технологий, появилась возможность окунуться в виртуальную реальность - в этом Вам поможет прибор для осознанных снов. Данное устройство доступно для заказа на нашем сайте по самой оптимальной цене.

Проанализируйте свои сны за последние месяцы, сколько раз вы находились в состоянии между сном и реальностью, не осознавая до конца, что происходит. А сколько раз вам снились кошмары? Помимо этого, многие люди впадают в состояние паралича во время сна - при этом Вам кажется, что Вы не можете двигаться. Существует уникальная возможность избежать неприятных ощущений во сне и самому выбирать сюжет сновидения, который станет увлекательным путешествием Вашего подсознания. Заказав на нашем сайте прибор "DreamTrainer", Вы навсегда забудете о кошмарных сновидениях.

Метод осознанных сновидений, говоря современным языком, позволит вам создать контролируемую виртуальную реальность, в которой вы сможете полностью управлять своим сном. Во сне Вы сможете воплотить любые свои фантазии, разобраться со своим внутренним миром, избавиться от многих проблем - приборы для осознанных сновидений созданы именно для этих целей.

Методика, по которой работает прибор осознанного сна инновацционна и, как все гениальное, достаточно проста. Специальное устройство, в котором установлен акселерометр и светодиоды, устанавливается на одной из дужек очков и реагирует на малейшее изменение положения туловища или кивок головы. Таким образом, обращая внимание на изменения индикаторов, Вы сможете контролировать свое состояние. Приучая свой мозг контролировать состояние реальности в дневное время, вы, со временем, сможете перейти к осознанным сновидениям и полностью раскрыть их потенциал.

Прибор для осознанных снов был разработан после ряда научных исследований, в ходе которых ученые изучали, как человек может повлиять на свой сон. В ходе изучения специалисты выяснили, что главным условием контроля сновидений является умение осознавать состояние реальности, а окружающие факторы не имеют никакого значения. Теперь данная методика доступна и Вам!

Процесс самосовершенствования очень прост - тренировки отнимут у вас минимум времени. Освоив простую методику, Вы сможете распознавать реальность и использовать это свойство для управления своими снами. Те преимущества, которые вы получите, в тысячи, если не миллионы раз выше по сравнению с доступной стоимостью прибора. Оформляйте заказ прибор "DreamTrainer" и начните новую жизнь уже сегодня!

2 months, 1 week ago (2018-08-08)
 by Radikbrume

Meet a guy to communicate and more write I won't bite you +79967254947 boys write WhatsApp +79967254947 boys write WhatsApp +79967254947 boys write WhatsApp +79967254947

1 month, 2 weeks ago (2018-09-04)
 by ChrisPuh

It's going to be finish of mine day, but before end I am reading this great post to increase my experience.

order levaquin 500 mg cheap zithromax 500 mg buy discount zithromax 250 mg buy keflex online keflex 250 mg price Danazol 200 mg price buy Danazol online buy Danazol 50 mg order clomid 50 mg Celecoxib low price au rabais Celecoxib kaufen Celecoxib comprare pillole online celebrex farmacia online celebrex Abilify price commande aripiprazole aripiprazole preis online ordine Abilify online comprar generico Abilify estrogen cost Estrace pilules en ligne kaufen billige estrogen ordine estrogen comprar Estrace online order furosemide online Lasix pharmacie en ligne bestellen Lasix online comprare furosemide comprar generico Lasix buy Amitriptyline online elavil pharmacie en ligne bestellen medikamente Amitriptyline Amitriptyline basso prezzo comprar Amitriptyline online disulfiram price Antabuse pharmacie en ligne bestellen disulfiram online comprare pillole online Antabuse orden disulfiram online order coumadin online warfarin pharmacie en ligne warfarin preis online warfarin medica farmaci comprar descuento coumadin order furosemide online Lasix bas prix kaufen furosemide furosemide basso prezzo Lasix precio bajo zestril cost Lisinopril pilules en ligne zestril preis online comprare Lisinopril online comprar generico zestril order Glucophage online acheter metformin bestellen medikamente metformin comprare Glucophage online descuento Glucophage buy generic minocycline acheter generique Minocin billige minocycline comprare minocycline descuento minocycline cheap Naproxen Naproxen pharmacie en ligne Naproxen preiswert ordine Naproxen online comprar generico naprosyn order paroxetine achat Paxil en ligne bestellen paroxetine online ordine paroxetine Paxil precio bajo Combivent low price achat Albuterol kaufen Combivent compra Combivent Combivent precio bajo purchase prednisone acheter Deltasone kaufen billige prednisone Deltasone basso prezzo comprar descuento Deltasone Sumatriptan cost Imitrex pilules en ligne bestellen medikamente Imitrex comprare pillole online Sumatriptan barato Imitrex order tetracycline online acheter generique tetracycline bestellen Sumycin online comprare Sumycin online orden tetracycline Bupropion low price zyban bas prix kaufen Wellbutrin Sr online comprare pillole online zyban comprar generico Wellbutrin Sr order actos online Pioglitazone pharmacie en ligne kaufen billige Pioglitazone farmaci online Pioglitazone actos pastillas online purchase tamsulosin tamsulosin pilules en ligne bestellen tamsulosin online flomax prezzo online barato tamsulosin order trazodone online au rabais desyrel bestellen trazodone comprare pillole online trazodone barato desyrel amoxil low price acheter au rabais amoxil bestellen amoxil online Amoxicillin basso prezzo barato amoxil order sinequan acheter sinequan sinequan preis online Doxepin medica farmaci orden Doxepin online order voltaren Diclofenac pharmacie en ligne kaufen generika voltaren comprare voltaren online comprar voltaren online Lisinopril low price pharmacie acheter Lisinopril kaufen billige zestril comprare generico Lisinopril comprar zestril online buy discount Amlodipine Amlodipine bas prix bestellen medikamente norvasc ordine Amlodipine Amlodipine precio bajo cheap Diclofenac pharmacie acheter voltaren bestellen voltaren online ordine voltaren comprar generico voltaren Clindamycin cost au rabais cleocin kaufen apotheke cleocin cleocin prezzo online comprar descuento cleocin discount Minocin achat minocycline kaufen minocycline Minocin prezzo online minocycline pastillas online aripiprazole low price Abilify bas prix kaufen billige Abilify comprare aripiprazole online descuento aripiprazole Deltasone low price Deltasone pharmacie en ligne kaufen generika prednisone prednisone medica farmaci prednisone pastillas online cheap metformin acheter Glucophage bestellen Glucophage ordine Glucophage online farmacia online Glucophage purchase vardenafil acheter vardenafil en ligne bestellen levitra comprare levitra online barato vardenafil Diflucan low price fluconazole pilules en ligne bestellen fluconazole comprare pillole online Diflucan comprar fluconazole buy mirtazapine pharmacie acheter remeron kaufen generika remeron ordine mirtazapine online comprar generico mirtazapine prozac low price prozac pharmacie en ligne bestellen fluoxetine online comprare pillole online prozac comprar descuento fluoxetine purchase Ibuprofen pharmacie acheter Ibuprofen kaufen apotheke motrin Ibuprofen basso prezzo orden Ibuprofen buy Quetiapine acheter generique seroquel kaufen seroquel ordine seroquel online Quetiapine precio bajo propecia price achat Finasteride en ligne bestellen Finasteride online ordine Finasteride Finasteride pastillas online cheap Paxil acheter paroxetine en ligne kaufen billige paroxetine comprare pillole online paroxetine Paxil precio bajo buy cipro online acheter generique cipro bestellen Ciprofloxacin online Ciprofloxacin medica farmaci comprar Ciprofloxacin Clindamycin cost acheter au rabais Clindamycin kaufen apotheke cleocin ordine Clindamycin online Clindamycin pastillas online discount orlistat orlistat pharmacie en ligne kaufen orlistat online orlistat medica farmaci orlistat pastillas online orlistat price achat orlistat bestellen orlistat orlistat medica farmaci orlistat precio bajo buy zoloft online pharmacie acheter zoloft kaufen zoloft online compra zoloft comprar zoloft order nexium online esomeprazole pharmacie en ligne billige nexium compra esomeprazole orden esomeprazole online buy discount ketoconazole acheter Nizoral en ligne kaufen generika ketoconazole ketoconazole prezzo online comprar Nizoral buy generic esomeprazole achat esomeprazole en ligne kaufen apotheke nexium comprare generico nexium comprar esomeprazole online cheap mevacor acheter Lovastatin bestellen Lovastatin Lovastatin prezzo online descuento mevacor order metformin au rabais metformin Glucophage preis online comprare Glucophage online Glucophage precio bajo Naltrexone cost revia pharmacie en ligne bestellen medikamente revia Naltrexone basso prezzo orden Naltrexone buy generic Pantoprazole au rabais Pantoprazole kaufen Protonix online comprare pillole online Pantoprazole Protonix precio bajo zithromax low price acheter Azithromycin en ligne bestellen Azithromycin online comprare generico zithromax comprar Azithromycin online buy Alendronate sodium online Alendronate sodium pharmacie en ligne bestellen medikamente Alendronate sodium farmaci online fosamax Alendronate sodium pastillas online purchase Combivent achat Combivent en ligne bestellen medikamente Proventil Combivent medica farmaci Combivent comprimidos online order keflex online commande Cephalexin kaufen apotheke keflex ordine Cephalexin online orden Cephalexin online clotrimazole low price clotrimazole pilules en ligne kaufen apotheke clotrimazole comprare generico clotrimazole descuento clotrimazole buy discount actos achat actos kaufen Pioglitazone online comprare actos comprar descuento Pioglitazone medicamentos orden sildenafil comprar levitra generico sildenafil comprar descuento brand viagra generico brand levitra kamagra viagra super active pastillas generico kamagra soft silagra orden viagra oral jelly generico caverta orden vigora online lovegra comprar tadacip comprar generico apcalis oral jelly medikamente bestellen sildenafil generikum levitra viagra soft tablette brand viagra tablette brand levitra online kamagra kaufen online preiswert viagra super active Sildenafil Citrat silagra generika generikum viagra oral jelly caverta vigora kaufen online preiswert lovegra tadacip bestellen apcalis oral jelly generika depression advice order celexa buy generic wellbutrin paxil cost order Bupropion buy buspar online Trazodone low price Mirtazapine price Mirtazapine low price Duloxetine cost order Quetiapine lexapro price discount Fluoxetine cheap Fluoxetine discount Risperidone buy effexor xr buy Amitriptyline online buy generic Amitriptyline Ziprasidone cost order Paroxetine discount Prochlorperazine buy Levetiracetam buy aventyl online buy Nortriptyline purchase Phenytoin lithobid price purchase zanaprin Clozapine price purchase Venlafaxine order venlor online order trivastal online order Quetiapine online cheap anafranil buy generic zoloft Sertraline low price elavil low price Venlafaxine low price Trazodone low price buy discount atarax order Doxepin online Hydroxyzine price cheap Doxepin order zyban order abilify cheap Aripiprazole buy Citalopram Fluvoxamine cost Fluvoxamine cost order Bupropion online cheap paxil cr Lithium Carbonate low price buy pamelor online tofranil low price purchase Amoxapine cheap Fluoxetine order Sinemet online buy discount Stress Gum order Bupron SR cheap Selegiline buy generic Ashwagandha buy buspar buy discount Duloxetine cheap Escitalopram hair loss order Finasteride online order Rogaine online order finpecia online Finasteride cost purchase Finasteride purchase Hair Loss Cream order finax finast cost order Anti-Hair Fall Shampoo online buy Hair Detangler & Conditioner purchase Revitalizing Hair Oil Selsun Shampoo price buy generic Rogaine 2% cheap Minoxidil Solution order Head Strong online bestellen propecia au rabais Finasteride orden propecia online comprare pillole online Finasteride Minoxidil preis online comprar descuento Rogaine commande Minoxidil Rogaine prezzo online kaufen apotheke Finasteride finpecia bas prix comprar Finasteride online Finasteride medica farmaci kaufen apotheke proscar Finasteride pharmacie en ligne Finasteride comprimidos online proscar medica farmaci kaufen billige Finasteride pharmacie acheter finasteride Finasteride comprimidos online finasteride basso prezzo order muscle relaxants online buy Baclofen online buy discount zanaflex Baclofen price buy robaxin online purchase Tizanidine parafon cost purchase Metaxalone buy discount himcospaz Metaxalone price buy generic Mebeverine buy Infusium Topical online diabetes information diabetes classification diabetes complications types diabetes factors treatment of hypertension Hypoglycemia Diabetes Insipidus Insulin Diabetic retinopathy information online diabetes drugs Paxil low price acheter Paxil en ligne Paxil preiswert compra Paxil barato paroxetine cheap Lasix acheter Lasix en ligne Lasix preis online furosemide basso prezzo descuento furosemide cheap disulfiram disulfiram pilules en ligne kaufen disulfiram online Antabuse prezzo online Antabuse comprimidos online vardenafil price acheter vardenafil en ligne vardenafil preis online ordine vardenafil online comprar descuento vardenafil buy zithromax zithromax 250 mg cost keflex cost buy discount keflex cheap Danazol buy Danazol 100 mg online buy Danazol online cheap clomid

1 month, 1 week ago (2018-09-05)
 by Melvinfract

If you want to increase your experience only keep visiting this site and be updated with the newest gossip posted here.

discount allegra 180 mg order lipitor online lipitor 20 mg cost purchase Crestor 10 mg order mevacor online zetia low price order zetia online buy discount zocor discount zyban order altace 5 mg paxil 20 mg low price cheap effexor purchase celexa 20 mg purchase lexapro 20 mg buy celebrex 200 mg online order propecia 1 mg order Cephalexin online achat Cephalexin keflex pillen apotheke online comprare pillole online Cephalexin comprar genérico Cephalexin buy aripiprazole online achat Abilify en ligne kaufen Abilify comprare aripiprazole online comprar aripiprazole buy discount Quetiapine au rabais Quetiapine billige seroquel farmaci online seroquel comprar descuento Quetiapine buy motrin acheter générique motrin kaufen generika motrin comprare pillole online Ibuprofen motrin precio bajo zovirax cost achat zovirax en ligne bestellen medikamente zovirax comprare pillole online zovirax barato zovirax buy discount Duloxetine Duloxetine pilules en ligne billige cymbalta cymbalta basso prezzo comprar Duloxetine order Atomoxetine online acheter strattera kaufen apotheke Atomoxetine comprare pillole online strattera barato Atomoxetine Gabapentin price commande Gabapentin kaufen neurontin online comprare Gabapentin comprar Gabapentin online Hydroxyzine price atarax pilules en ligne Hydroxyzine pillen apotheke online comprare Hydroxyzine online comprar atarax cheap Gabapentin neurontin pharmacie en ligne Gabapentin pillen apotheke online farmaci online Gabapentin descuento neurontin order topamax au rabais topamax bestellen topamax online comprare pillole online topamax comprar topamax purchase ketoconazole achat ketoconazole en ligne kaufen billige Nizoral comprare pillole online ketoconazole farmacia online Nizoral Lamotrigine low price lamictal bas prix kaufen billige lamictal ordine lamictal orden lamictal online buy amoxicillin online achat amoxicillin kaufen amoxicillin farmaci online penicillin orden penicillin online buy nolvadex online acheter générique nolvadex kaufen nolvadex online ordine nolvadex online barato nolvadex order atarax online acheter atarax Hydroxyzine pillen apotheke online comprare atarax Hydroxyzine precio bajo buy Lithium acheter lithobid en ligne kaufen billige lithobid lithobid basso prezzo descuento Lithium cheap Estradiol au rabais estrace kaufen generika estrace comprar genérico estrace comprare estrace online valtrex price au rabais valacyclovir valtrex preiswert compra valtrex orden valtrex online femara low price commande Letrozole femara preiswert farmaci online femara comprar Letrozole amoxicillin cost acheter penicillin billige amoxicillin comprare pillole online penicillin penicillin comprimidos online Duloxetine cost cymbalta bas prix kaufen Duloxetine online comprare pillole online Duloxetine comprar descuento Duloxetine cheap Lamotrigine Lamotrigine bas prix kaufen lamictal comprare Lamotrigine comprar lamictal online order topamax online topamax pharmacie en ligne topamax pillen apotheke online comprare topiramate comprar topamax viagra low price acheter générique viagra kaufen apotheke Sildenafil ordine viagra online Sildenafil comprimidos online Clomid price acheter Clomiphene kaufen Clomiphene online Clomiphene medica farmaci orden Clomid online Imitrex cost au rabais Sumatriptan bestellen Sumatriptan online comprare Sumatriptan online comprar descuento Imitrex Montelukast cost acheter singulair en ligne Montelukast preis online ordine singulair singulair pastillas online buy revia commande Naltrexone kaufen revia online comprare pillole online revia descuento revia motrin price motrin pharmacie en ligne bestellen medikamente Ibuprofen comprare pillole online Ibuprofen barato motrin Gabapentin price acheter neurontin en ligne neurontin pillen apotheke online neurontin basso prezzo Gabapentin precio bajo purchase strattera strattera bas prix bestellen Atomoxetine online comprare pillole online Atomoxetine strattera pastillas online buy discount Loratadine acheter Loratadine kaufen Loratadine online ordine Loratadine online claritin precio bajo discount Antabuse au rabais Antabuse kaufen apotheke disulfiram comprare pillole online Antabuse barato Antabuse buy generic Naproxen achat Naproxen en ligne Naproxen pillen apotheke online ordine naprosyn online orden Naproxen online order Naltrexone online acheter au rabais Naltrexone Naltrexone preis online revia basso prezzo orden Naltrexone online buy warfarin pharmacie acheter warfarin kaufen warfarin online comprare warfarin coumadin pastillas online buy Ibuprofen online acheter Ibuprofen bestellen motrin online comprare pillole online motrin orden Ibuprofen online Amlodipine cost au rabais norvasc kaufen generika Amlodipine ordine Amlodipine comprar Amlodipine online buy zyban online achat zyban en ligne kaufen Wellbutrin Sr ordine Wellbutrin Sr orden Bupropion purchase Lithobid achat lithium carbonate en ligne kaufen Lithobid comprare generico lithium carbonate comprar lithium order topiramate online achat topiramate bestellen topiramate topiramate basso prezzo topiramate pastillas online actos cost acheter générique Pioglitazone kaufen Pioglitazone online compra Pioglitazone barato actos order zyban 150 mg cheap altace buy generic paxil discount effexor order celexa online lexapro low price buy discount celebrex 200 mg propecia price

2 weeks, 1 day ago (2018-10-04)
 by SEOMibra

раскрутка сайта заказать - seorussian.ru

1 week, 3 days ago (2018-10-09)
 by Get A Loan

poor credit loans guaranteed approval poor credit loans poor credit loans no credit loans

1 week, 1 day ago (2018-10-11)
 by Cash Loan

poor credit loans guaranteed approval cash loan online loans no credit check credit loans guaranteed approval

6 days, 6 hours ago (2018-10-13)
 by Money Loan

same day payday loans no credit check bad credit loans credit loans credit loans

2 days, 12 hours ago (2018-10-16)
 by Jameshon

how to write an essay about my family http://www.youtube.com/watch?v=ErWc5d2UKSw essay writing help http://www.youtube.com/watch?v=347RcYd9PSY international essay writing competition http://www.youtube.com/watch?v=HHK8G7OaC9Q what do i write my college essay on http://www.youtube.com/watch?v=4_SNl8ktWkQ writing college essay https://youtu.be/Bnl17DqnKvk essay writing at masters level https://youtu.be/NApcqH2VSvs writing an introduction for an essay http://www.youtube.com/watch?v=LiTZprVSxLw how to write a scholarship essay about yourself http://www.youtube.com/watch?v=JQfZz9oia0k how to write a play name in an essay http://www.youtube.com/watch?v=fKMkU6Fu25g

2 days, 9 hours ago (2018-10-17)
 by RaymondGOT

how to write an conclusion to an essay http://www.youtube.com/watch?v=zNqU_Nqguk8 how to write a good memoir essay http://www.youtube.com/watch?v=347RcYd9PSY i hate writing essays https://www.youtube.com/watch?v=NApcqH2VSvs&feature=youtu.be how to write a good scholarship essay http://www.youtube.com/watch?v=FNKovCCeKEM what is a hook in writing an essay http://www.youtube.com/watch?v=cvnst2YMyeM writing a dbq essay http://www.youtube.com/watch?v=cwOgzgl1Vh0 freedom writers analysis essay https://youtu.be/zmYaKPI7QK0 write better essays http://www.youtube.com/watch?v=ErWc5d2UKSw how to write an introduction for a college application essay https://youtu.be/NApcqH2VSvs